0

我想验证 STS 发出的 SessionSecurityToken。通过验证,我的意思是证明令牌不是精心设计的,并且确认令牌是从 STS 发出的。

从概念上讲,我知道如果 STS 用它的私钥加密(或签名)令牌,我可以用公钥解密(或验证签名)。

据我了解,我正在使用的 STS(ThinkTecture Identity Server)使用对称签名密钥来签署令牌。

我收到的 SessionSecurityToken 包含一个 SecurityKeys 属性。什么代表这个 SecurityKeys?MSDN 文档告诉:“获取与此会话关联的密钥。这通常是单个密钥。”

是我的 STS 使用的 SymmetricKey 吗?如果是这样,这意味着对称密钥没有得到很好的保护,如果有人得到这个密钥,他就可以伪造一个令牌。

是令牌签名吗?如果是这样,我该如何验证签名(假设我有对称密钥)?

还有其他有用的信息可以帮助我理解我们验证 SessionSecurityToken 的方式吗?

4

1 回答 1

0

所以首先 - STSes 不会发出会话令牌。他们发出(我猜你使用 WS-Fed)一个 SAML 令牌。此令牌使用 X.509 证书进行签名。

然后,依赖方获取传入的 SAML 令牌并将其转换为会话令牌并将其写入 cookie。

那你为什么要验证呢?这是由 SAM 自动完成的。

于 2013-04-26T16:40:00.820 回答