强制执行已签名的 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 证书”下名为“验证证书”的子部分。

    “企业应用程序”页上“SAML 证书”下的验证证书的屏幕截图。

  6. 选择“编辑” 。

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

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

    “企业应用程序”页中要求验证证书的屏幕截图。

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

  10. 启用已签名请求的验证后,将禁用测试体验,因为服务提供商必须对请求进行签名。

    “企业应用程序”页中启用已签名请求时显示的已禁用测试警告的屏幕截图。

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

    单一登录屏幕中的企业应用程序配置的屏幕截图。

后续步骤