在我们的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网站上找不到任何信息 - 除了此类错误的通用指南。
请就此错误提出建议。
答案 0 :(得分:0)
经过大量分析后,我找到了解决方案。这是一个Shibboleth配置问题。在应用程序默认值部分中,实体ID应该对应用程序是唯一的。
ApplicationDefaults signing =“false”entityID =“http://受保护应用程序的URL” REMOTE_USER =“eppn persistent-id targeted-id”
当sigining设置为true时,会发生此错误的另一种变体。这将导致ADFS中的签名不匹配错误。