I want to validate a SessionSecurityToken issued by a STS. By validate, I mean certify that the token is not crafted and verity that the token is issued from the STS.
Conceptually, I know that if the STS encrypt (or sign) the token with it's private key, I could decrypt (or validate signature) with a public key.
From what I understand, the STS I am using (ThinkTecture Identity Server) uses a Symmetric Signing Key to sign to token.
The SessionSecurityToken I received contains a SecurityKeys property. What represent this SecurityKeys? MSDN documentation tells: "Gets the keys associated with this session. This is usually a single key."
Is it the SymmetricKey used by my STS? If so, it means that the symmetric key is not well protected, and if anybody gets this key, he could fake a token.
Is it the token signature? If so, how can I validate the signature (assuming that I have the symmetric key)?
Any other useful information to help me understand the way we validate a SessionSecurityToken?