Azure AD 的 LogoutResponse 证书问题

Posted

技术标签:

【中文标题】Azure AD 的 LogoutResponse 证书问题【英文标题】:Certificate issue on LogoutResponse from Azure AD 【发布时间】:2022-01-15 03:43:50 【问题描述】:

作为服务提供商,我们使用包“ITfoxtec Identity Saml2”来处理 SAML2.0。我们有两个使用 AzureAD 作为 IDP 的集成。两者在处理来自 Azure 的 LogoutResponse 时都有问题。发生此异常:

System.IdentityModel.Tokens.SecurityTokenValidationException: The X.509 certificate CN=Microsoft Azure Federated SSO Certificate chain building failed. The certificate that was used has a trust chain that cannot be verified. Replace the certificate or change the certificateValidationMode. A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.

避免这个问题的唯一方法是设置

Saml2Configuration.CertificateValidationMode = System.ServiceModel.Security.X509CertificateValidationMode.None;

但据我了解,这将停用所有证书验证,在处理 AuthnRequest 时也是如此。

知道如何规避这个问题吗?

【问题讨论】:

【参考方案1】:

停用证书更改验证可能没问题。验证仅检查证书是否具有依赖方已知的链。这意味着必须在依赖方服务/服务器上知道根证书。

【讨论】:

所以你是说即使我设置 CertificateValidationMode = None,签名仍然会根据 IDP 证书进行验证? CertificateValidationMode 只确保证书是否可信? 是的,正确。 ITfoxtec Identity Saml2 组件始终使用证书验证签名。 非常感谢您的帮助!您创建的优秀图书馆。

以上是关于Azure AD 的 LogoutResponse 证书问题的主要内容,如果未能解决你的问题,请参考以下文章

Azure AD B2C 与企业 (Azure?) AD 帐户集成

Windows Azure AD 在单一目录下,使用Azure AD单点登录

Azure AD User 同步_部署Azure AD Connect考量点

Azure AD 应用程序未出现在 Azure Web 应用程序的现有 AD 应用程序列表中

Azure AD B2C:注销社交帐户(使用 OIDC 的 Azure AD)

如何将 Azure AD 和非 Azure AD 令牌添加到同一个 .NET Core Api