用户登录后,应用页面上会显示错误消息

在此方案中,Microsoft Entra ID 将用户登录。 但是应用程序会显示错误消息,并且不允许用户完成登录流程。 问题在于应用不接受 Microsoft Entra ID 发出的响应。

应用不接受来自 Microsoft Entra ID 的响应可能有几种原因。 如果显示错误消息或代码,请使用以下资源来诊断错误:

如果错误消息没有明确指出响应中缺少的内容,请尝试以下操作:

提示

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

SAML 响应中缺少属性

若要在 Microsoft Entra 配置中添加将在 Microsoft Entra 响应中发送的属性,请执行以下步骤:

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

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

  3. 在搜索框中输入现有应用程序的名称,然后选择要为单一登录配置的应用程序。

  4. 应用加载后,在导航窗格中选择“单一登录”。

  5. 在“用户属性”部分中,选择“查看和编辑所有其他用户属性” 。 在这里,你可以更改用户登录时要在 SAML 令牌中发送到应用的属性。

    若要添加属性:

    1. 选择“添加属性”。 输入“名称”,然后从下拉列表中选择“值” 。

    2. 选择“保存”。 然后就能在表中看到新属性了。

  6. 保存配置。

    用户下次登录应用时,Microsoft Entra ID 将发送 SAML 响应中的新属性。

应用无法识别用户

由于 SAML 响应缺少属性(例如 role),因此登录应用失败。 或者,它会失败的原因是应用期望针对 NameID(用户标识符)属性使用其他格式或值。

如果你使用 Microsoft Entra ID 自动用户预配在应用中创建、维护和删除用户,请验证是否已将用户预配到 SaaS 应用程序。 有关详细信息,请参阅没有为任何用户预配 Microsoft Entra 库应用程序

将属性添加到 Microsoft Entra 应用配置

若要更改用户标识符值,请执行以下步骤:

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心
  2. 浏览到“标识”>“应用程序”>“企业应用程序”>“所有应用程序”。
  3. 选择要配置为 SSO 的应用。
  4. 应用加载后,在导航窗格中选择“单一登录”。
  5. 在“用户属性”下的“用户标识符”下拉列表中,为用户选择唯一标识符 。

更改 NameID 格式

如果应用程序期望针对 NameID(用户标识符)属性使用其他格式,请参阅编辑 nameID 部分以更改 NameID 格式。

Microsoft Entra ID 会根据所选值或 SAML AuthRequest 中应用要求的格式,为 NameID 属性(用户标识符)选择格式。 有关详细信息,请参阅单一登录 SAML 协议的“NameIDPolicy”部分。

应用期望对 SAML 响应使用其他签名方法

若要更改 SAML 令牌的哪些部分由 Microsoft Entra ID 进行数字签名,请执行以下步骤:

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

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

  3. 选择要配置为单一登录的应用程序。

  4. 应用程序加载后,在导航窗格中选择“单一登录”。

  5. 在“SAML 签名证书”下,选择“显示高级证书签名设置” 。

  6. 从以下选项中选择应用期望的“签名选项”:

    • 为 SAML 响应签名
    • 为 SAML 响应和断言签名
    • 为 SAML 断言签名

    用户下次登录应用时,Microsoft Entra ID 会对所选择的 SAML 响应部分进行签名。

应用期望使用 SHA-1 签名算法

默认情况下,Microsoft Entra ID 使用最安全的算法对 SAML 令牌进行签名。 我们的建议是,除非应用需要 SHA-1,否则不要将签名算法更改为 SHA-1。

若要更改签名算法,请执行以下步骤:

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

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

  3. 选择要配置为单一登录的应用。

  4. 应用加载后,在应用左侧的导航窗格中选择“单一登录”。

  5. 在“SAML 签名证书”下,选择“显示高级证书签名设置” 。

  6. 选择“SHA-1”作为“签名算法” 。

    用户下次登录应用时,Microsoft Entra ID 将使用 SHA-1 算法对 SAML 令牌进行签名。

后续步骤