It's unclear to me how the STS is supposed to encrypt the token for the Relying Party, in the RSTR. Specifically, how does the STS obtain the RP's encryption key or certificate The Integration Guide talks about an endpoint reference augmented with identity data in the form of an X509v3 certificate:
<wsa:EndpointReference>
<wsa:Address>http://wh1.fabrikam123.com/Purchasing</wsa:Address>
<wsid:Identity>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</wsid:Identity>
</wsa:EndpointReference>
but I haven't seen anything like this coming from CardSpace -- all my STS receives is the wsa:Address for the RP (inside the AppliesTo element), without the wsa:Identity. So, my STS does not encrypt the token, but this causes problems with RPs that expect the token to be encrypted. What am I missing here Is there something I need to put into the STS's security policy