0

我们已扩展SecurityTokenServiceWindows Identity Foundation(WIF) 提供。它按预期发出令牌,并在调用我们拥有的所有其他 WCF 服务时将 SAML 令牌添加到 SOAP 标头中。

我可以看到安全令牌中存在的NotBeforeNotOnOrAfterSaml 条件中的正确值。

NotOnOrAfter但令人惊讶的是,即使在 SOAP 标头中的安全令牌中存在的 Saml 条件中存在的时间戳之后调用服务时,对其他 WCF 服务的每次调用也会成功。

  1. 我不明白为什么会这样。我是否需要编写一些代码来拒绝具有过期安全令牌的呼叫?
  2. 我需要为它创建自定义绑定或行为吗?
  3. WIF 或 WCF 不会自动处理这个基本的事情吗?
  4. 如果您能指出一些很好的文档来解释幕后发生的事情,那就太好了!

我正在使用 .NET 4.0

4

2 回答 2

1

此验证由 提供SecurityTokenHandler。使用哪个令牌处理程序取决于您的令牌类型和您的配置。

回答你的观点:

  1. 这取决于令牌处理程序。对于 saml 令牌,这应该为您完成。
  2. 通常——没有。
  3. 就像第 1 点一样。
  4. 我个人反汇编 Microsoft.IdentityModel.dll。

检查您的 web.config<microsoft.identityModel><service><securityTokenHandlers>部分。如果它被更改并且您使用自定义处理程序,那么您可能已经覆盖了在SecurityTokenHandler.ValidateToken. 如果没有,那么您必须弄清楚您的令牌类型。如果是 SAML1.1 或 SAML2.0,则应对其进行验证。如果没有,请分享您的令牌类型。

于 2012-11-07T15:00:28.130 回答
0

在 ValitTo 日期到期加上 MaxClockSkew 参数的时间后,对 wcf 服务的调用将被拒绝。您可以通过配置服务来管理该参数。

于 2015-03-26T05:58:23.477 回答