ADFS 2.0 中的 SAML 2 签名错误
Posted
技术标签:
【中文标题】ADFS 2.0 中的 SAML 2 签名错误【英文标题】:SAML 2 Signature error in ADFS 2.0 【发布时间】:2013-05-03 10:38:48 【问题描述】:在我们的 SSO 场景中,我们使用 ADFS 2.0 作为 IDP,使用 Shibboleth 作为 SP。它是由 SP 发起的登录。配置后,当我尝试在 Shibboleth 和 ADFS 2.0(抛出浏览器重定向)之间建立通信时,ADFS 2.0 抛出以下错误。
SAML 消息签名验证失败。 消息发布者:
http://sampleserver/adfs/services/trust
异常详情: MSIS1015:服务器需要签名的 SAML AuthenticationRequest,但没有签名。
事件 ID - 320 相关事件 ID - 364
> Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolSignatureVerificationException:
> MSIS1015: Server required signed SAML AuthenticationRequest but no
> signature present. at
> Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolService.ValidateSignatureRequirements(SamlMessage
> samlMessage) at
> Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolService.Issue(IssueRequest
> issueRequest) at
> Microsoft.IdentityServer.Service.SamlProtocol.SamlProtocolService.ProcessRequest(Message
> requestMessage)
我们还没有使用任何签名。我还在 ADFS 属性中将 SignedSamlRequest 设为 false。 Shibboleth 的 SAML 签名也被禁用。
我在 Microsoft 网站上找不到任何信息 - 除了此类错误的通用指南。
请就此错误提出建议。
【问题讨论】:
【参考方案1】:经过大量分析,我能够找到解决方案。这是一个 Shibboleth 配置问题。在应用程序默认值部分,实体 ID 对于应用程序应该是唯一的。
ApplicationDefaults signing="false" entityID="http://URL of the protected Application " REMOTE_USER="eppn persistent-id 目标 ID"
当 siging 设置为 true 时,会发生此错误的另一种变体。这将导致 ADFS 中的签名不匹配错误。
【讨论】:
以上是关于ADFS 2.0 中的 SAML 2 签名错误的主要内容,如果未能解决你的问题,请参考以下文章