用户登录后,应用页面上会显示错误消息
在此方案中,Microsoft Entra ID 将用户登录。 但是应用程序会显示错误消息,并且不允许用户完成登录流程。 问题在于应用不接受 Microsoft Entra ID 发出的响应。
应用不接受来自 Microsoft Entra ID 的响应可能有几种原因。 如果显示错误消息或代码,请使用以下资源来诊断错误:
如果错误消息没有明确指出响应中缺少的内容,请尝试以下操作:
- 如果应用在 Microsoft Entra 库中,请验证你是否遵循了如何在 Microsoft Entra ID 中调试对应用程序进行的基于 SAML 的单一登录中的步骤。
- 使用 Fiddler 之类的工具捕获 SAML 请求、SAML 响应和 SAML 令牌。
- 将 SAML 响应发送给应用供应商,并向他们询问缺少的内容。
提示
本文中的步骤可能因开始使用的门户而略有不同。
SAML 响应中缺少属性
若要在 Microsoft Entra 配置中添加将在 Microsoft Entra 响应中发送的属性,请执行以下步骤:
至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“应用程序”>“企业应用程序”>“所有应用程序”。
在搜索框中输入现有应用程序的名称,然后选择要为单一登录配置的应用程序。
应用加载后,在导航窗格中选择“单一登录”。
在“用户属性”部分中,选择“查看和编辑所有其他用户属性” 。 在这里,你可以更改用户登录时要在 SAML 令牌中发送到应用的属性。
若要添加属性:
选择“添加属性”。 输入“名称”,然后从下拉列表中选择“值” 。
选择“保存”。 然后就能在表中看到新属性了。
保存配置。
用户下次登录应用时,Microsoft Entra ID 将发送 SAML 响应中的新属性。
应用无法识别用户
由于 SAML 响应缺少属性(例如 role),因此登录应用失败。 或者,它会失败的原因是应用期望针对 NameID(用户标识符)属性使用其他格式或值。
如果你使用 Microsoft Entra ID 自动用户预配在应用中创建、维护和删除用户,请验证是否已将用户预配到 SaaS 应用程序。 有关详细信息,请参阅没有为任何用户预配 Microsoft Entra 库应用程序。
将属性添加到 Microsoft Entra 应用配置
若要更改用户标识符值,请执行以下步骤:
- 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
- 浏览到“标识”>“应用程序”>“企业应用程序”>“所有应用程序”。
- 选择要配置为 SSO 的应用。
- 应用加载后,在导航窗格中选择“单一登录”。
- 在“用户属性”下的“用户标识符”下拉列表中,为用户选择唯一标识符 。
更改 NameID 格式
如果应用程序期望针对 NameID(用户标识符)属性使用其他格式,请参阅编辑 nameID 部分以更改 NameID 格式。
Microsoft Entra ID 会根据所选值或 SAML AuthRequest 中应用要求的格式,为 NameID 属性(用户标识符)选择格式。 有关详细信息,请参阅单一登录 SAML 协议的“NameIDPolicy”部分。
应用期望对 SAML 响应使用其他签名方法
若要更改 SAML 令牌的哪些部分由 Microsoft Entra ID 进行数字签名,请执行以下步骤:
至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“应用程序”>“企业应用程序”>“所有应用程序”。
选择要配置为单一登录的应用程序。
应用程序加载后,在导航窗格中选择“单一登录”。
在“SAML 签名证书”下,选择“显示高级证书签名设置” 。
从以下选项中选择应用期望的“签名选项”:
- 为 SAML 响应签名
- 为 SAML 响应和断言签名
- 为 SAML 断言签名
用户下次登录应用时,Microsoft Entra ID 会对所选择的 SAML 响应部分进行签名。
应用期望使用 SHA-1 签名算法
默认情况下,Microsoft Entra ID 使用最安全的算法对 SAML 令牌进行签名。 我们的建议是,除非应用需要 SHA-1,否则不要将签名算法更改为 SHA-1。
若要更改签名算法,请执行以下步骤:
至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“应用程序”>“企业应用程序”>“所有应用程序”。
选择要配置为单一登录的应用。
应用加载后,在应用左侧的导航窗格中选择“单一登录”。
在“SAML 签名证书”下,选择“显示高级证书签名设置” 。
选择“SHA-1”作为“签名算法” 。
用户下次登录应用时,Microsoft Entra ID 将使用 SHA-1 算法对 SAML 令牌进行签名。