我想验证 STS 发出的 SessionSecurityToken。通过验证,我的意思是证明令牌不是精心设计的,并且确认令牌是从 STS 发出的。
从概念上讲,我知道如果 STS 用它的私钥加密(或签名)令牌,我可以用公钥解密(或验证签名)。
据我了解,我正在使用的 STS(ThinkTecture Identity Server)使用对称签名密钥来签署令牌。
我收到的 SessionSecurityToken 包含一个 SecurityKeys 属性。什么代表这个 SecurityKeys?MSDN 文档告诉:“获取与此会话关联的密钥。这通常是单个密钥。”
是我的 STS 使用的 SymmetricKey 吗?如果是这样,这意味着对称密钥没有得到很好的保护,如果有人得到这个密钥,他就可以伪造一个令牌。
是令牌签名吗?如果是这样,我该如何验证签名(假设我有对称密钥)?
还有其他有用的信息可以帮助我理解我们验证 SessionSecurityToken 的方式吗?