配置 ADFS / Spring Security 以接受未签名的 SAML AuthnRequest
Posted
技术标签:
【中文标题】配置 ADFS / Spring Security 以接受未签名的 SAML AuthnRequest【英文标题】:Config ADFS / Spring Security to accept unsigned SAML AuthnRequest 【发布时间】:2019-11-24 06:08:41 【问题描述】:我正在尝试将我的 Web 应用 SAML 与 ADFS 集成(它已与其他 IdP 一起使用)。发送到 ADFS 的 AuthnRequest
未签名。 ADFS 拒绝该请求,并在其日志中留下此消息:
Microsoft.IdentityModel.Protocols.XmlSignature.SignatureVerificationFailedException:MSIS0037:找不到颁发者“com.onshape.saml2.sp”的签名验证证书。
我已经尝试过:
Set-AdfsRelyingPartyTrust -SignedSamlRequestsRequired $False
但这并没有帮助。
我可以将 ADFS 配置为接受我的应用程序的未签名请求吗?或者对我的应用进行一些更改以使其生成 ADFS 将接受的请求?
【问题讨论】:
【参考方案1】:错误消息有点误导 - 通常的根本原因是您的身份验证请求 (com.onshape.saml2.sp
) 中的颁发者与您在 ADFS 中注册的服务提供商的实体 ID 不匹配。
【讨论】:
有趣的想法但不适用于我的情况,我想。AuthnRequest
的相关位(从前往 ADFS 的 POST
请求中的 SAMLRequest
URL 查询参数中提取和解码)是 <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">com.onshape.saml2.sp</saml2:Issuer>
。请求中的颁发者与 ADFS 中依赖方信任中的值匹配。以上是关于配置 ADFS / Spring Security 以接受未签名的 SAML AuthnRequest的主要内容,如果未能解决你的问题,请参考以下文章
Spring SAML ADFS:java.security.InvalidKeyException
Spring Security SAML Extension 将 ADFS 3.0 与其他声明提供程序集成
Spring security SAML:自己的登录页面而不是 ADFS 登录重定向
Spring security ADFS SSO 集成 - 响应没有任何可以通过主题验证的有效断言