错误“WIF10201:在尝试从SML创建索赔时找不到有效的密钥映射
-
21-12-2019 - |
题
我正在尝试验证来自第三方的SiteMinder IDP的SAML响应。我已安装它们提供的证书。当我调用 validatekendoken 方法时(system.identitymodel.tokens)来创建索赔时,我得到以下错误:
wif10201:找不到有效的键映射 securitytoken:'system.identitymodel.tokens.x509securitytoken'和 发行人:'发行人URI'
我深深地挖到了发现错误和它被方法抛出 getissuername (system.identitymodel.tokens)。
问题在哪里?我谷歌入这个问题,但没有找到对我的案件的任何东西。来自客户的Saml令牌是否存在问题或者在实施中缺少一些东西。我对联邦auth的新态度,所以请原谅与所使用的术语不准确。
gaurav
解决方案
遵循这种方法将SAML2响应转换为WSFED响应,然后在该新令牌上我运行了我的代码,现在错误消失了。
注意:您仍然必须覆盖验证令牌方法(我最初完成的)以避免以下错误:
“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.”
.
其他提示
您可能缺少将发行者名称(如令牌中的指定)映射到证书(可能用指纹指定)映射到证书的配置。我猜你用Web.config中的一些配置解决了这个问题。看看p.e. Microsoft验证发行者名称注册表页面包含一些示例配置。正确设置这一点完全取决于您的情况。
我想为将来参考作出一个注释,因为我也遇到了这个错误,但我的分辨率是不同的。在Windows Server 2012下使用ADFS(3.0)索引的认证在MVC应用程序的web.config
中,我在使用ADFS(3.0)所称的索引的身份验证中获取WIF10201错误。事实证明,当签名证书即将到期时,ADF会创建一个新密钥。新密钥标记为“主”,旧密钥标记为ADFS控制台中的“辅助”(根据AD FS / Service /证书)。所以在我的web.config
中,当然,仍然是旧(辅助)键的指纹。一旦我用新(主要)键的指纹替换它,错误就会消失。