SAML 请求签名验证

SAML 请求签名验证是一种验证已签名身份验证请求签名的功能。 应用管理员现在可以启用和禁用已签名请求的强制执行,并上传应该用于完成验证的公钥。

如果已启用,Microsoft Entra ID 将根据配置的公钥验证请求。 在某些情况下,身份验证请求可能会失败:

  • 已签名的请求使用的协议不被允许。 仅支持 SAML 协议。
  • 请求未签名,但已启用验证。
  • 没有为 SAML 请求签名验证配置验证证书。 有关证书要求的详细信息,请参阅证书签名选项
  • 签名验证失败。
  • 请求中的密钥标识符缺失,并且最近添加的 2 个证书与请求签名不匹配。
  • 请求已签名,但算法缺失。
  • 没有与提供的密钥标识符匹配的证书。
  • 不允许使用签名算法。 仅支持 RSA-SHA256。

注意

AuthnRequest 元素中的 Signature 元素是可选的。 如果未选中 Require Verification certificates,则 Microsoft Entra ID 不会验证签名的身份验证请求(如果存在签名)。 仅通过响应已注册的断言使用者服务 URL 来提供请求者验证。

如果选中 Require Verification certificates,则 SAML 请求签名验证将仅适用于 SP 发起的(服务提供商/依赖方发起的)身份验证请求。 只有服务提供商配置的应用程序才能访问私钥和公钥,以便对来自应用程序的传入 SAML 身份验证请求进行签名。 应上传公钥以允许对请求进行验证,在这种情况下,Microsoft Entra ID 只能访问公钥。

启用 Require Verification certificates 后将不允许验证 IDP 发起的身份验证请求(如 SSO 测试功能、MyApps 或 M365 应用启动器),因为 IDP 将不拥有与注册应用程序相同的私钥。

先决条件

若要配置 SAML 请求签名验证,需要:

  • 一个 Microsoft Entra 用户帐户。 如果还没有帐户,可以免费创建一个帐户
  • 以下角色之一:全局管理员、云应用程序管理员、应用程序管理员或服务主体的所有者。

提示

本文中的步骤可能因开始使用的门户而略有不同。

配置 SAML 请求签名验证

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“应用程序”>“企业应用程序”>“所有应用程序”。

  3. 在“搜索”框中输入现有应用程序的名称,然后从搜索结果中选择该应用程序。

  4. 导航到“单一登录”。

  5. 在“单一登录”屏幕上,滚动到“SAML 证书”下名为“验证证书”的子部分。

    Screenshot of verification certificates under SAML Certificates on the Enterprise Application page.

  6. 选择编辑

  7. 在新边栏选项卡中,可以启用已签名请求的验证,并在应用程序仍使用 RSA-SHA1 对身份验证请求进行签名时选择启用弱算法验证。

  8. 若要启用已签名请求的验证,请选择“启用验证证书”,并上传与用于对请求进行签名的私钥匹配的验证公钥。

    Screenshot of enable verification certificates in Enterprise Applications page.

  9. 上传验证证书后,选择“保存”。

  10. 启用已签名请求的验证后,将禁用测试体验,因为请求需要由服务提供商签名。

    Screenshot of testing disabled warning when signed requests enabled in Enterprise Application page.

  11. 如果想要查看企业应用程序的当前配置,可以导航到“单一登录”屏幕,并在“SAML 证书”下查看配置摘要。 可以在该处查看是否启用了已签名请求的验证,以及“活动”和“已过期”验证证书的计数。

    Screenshot of enterprise application configuration in single sign-on screen.

后续步骤