1

我正在尝试验证来自第三方的 Siteminder IDP 的 SAML 响应。我已经安装了他们提供的证书。当我调用ValidateToken方法 (System.IdentityModel.Tokens) 创建声明时,出现以下错误:

WIF10201:未找到 securityToken:'System.IdentityModel.Tokens.X509SecurityToken' 和颁发者:'issuer uri'的有效密钥映射

我深入挖掘以找到错误及其由方法GetIssuerName (System.IdentityModel.Tokens) 引发的。

哪里有问题?我搜索了这个问题,但没有找到任何特定于我的案例的内容。我的客户的 SAML 令牌是否有问题,或者我在实施中缺少某些东西。我对联合身份验证还很陌生,所以请原谅使用的术语有任何不准确之处。

高拉夫

4

3 回答 3

1

好的,找到了解决方案,但不太了解它背后的阅读内容(完整的菜鸟,当我知道更多时会更新答案)。

遵循这种将 SAML2 响应转换为 WSFed 响应的方法,然后在那个新令牌上运行我的代码,现在错误消失了。

http://blogs.msdn.com/b/bradleycotier/archive/2012/10/28/saml-2-0-tokens-and-wif-bridging-the-divide.aspx

注意:您仍然必须覆盖验证令牌方法(我最初所做的)以避免以下错误:

“ID4154: A Saml2SecurityToken cannot be created from the Saml2Assertion because it contains a SubjectConfirmationData which specifies an InResponseTo value. Enforcement of this value is not supported by default. To customize SubjectConfirmationData processing, extend Saml2SecurityTokenHandler and override ValidateConfirmationData.”

谢谢。

于 2014-07-31T08:48:28.370 回答
0

您可能缺少将颁发者名称(在令牌中指定)映射到证书(可能使用指纹指定)的配置。我猜你通过 web.config 中的一些配置来解决这个问题。查看 pe Microsoft 验证发行者名称注册表该页面包含一些示例配置。正确设置完全取决于您的情况。

于 2014-07-30T06:57:22.753 回答
0

我想做一个笔记以供将来参考,因为我也遇到了这个错误,但我的解决方案不同。在 Windows Server 2012 下使用 ADFS (3.0) 基于声明的身份验证的自定义 MVC 应用程序中出现 WIF10201 错误。在web.configMVC 应用程序中,记录了 ADFS 令牌签名密钥的指纹。事实证明,当签名证书即将到期时,ADFS 会创建一个新密钥。在 ADFS 控制台(在 AD FS/Service/Certificates 下)中,新密钥被标记为“主要”,旧密钥被标记为“次要”。因此,当然,在我web.config的身上仍然有旧(次要)钥匙的指纹。一旦我用新(主)键的指纹替换它,错误就消失了。

于 2016-01-19T11:16:41.150 回答