配置 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 集成 - 响应没有任何可以通过主题验证的有效断言

SAML 注销时的 ADFS NullReference 异常(事件 303)

Spring security - 创建 2 个具有特定匹配器的过滤器链