在此方案中,Microsoft Entra ID 让用户登录。 但应用程序会显示一条错误消息,不允许用户完成登录流。 问题是应用不接受Microsoft Entra ID 颁发的响应。
应用不接受来自 Microsoft Entra ID 的响应的原因有多种。 如果显示错误消息或代码,请使用以下资源诊断错误:
如果错误消息无法清楚地识别响应中缺少的内容,请尝试以下步骤:
- 如果应用位于 Microsoft Entra 库中,请验证是否遵循 了如何在 Microsoft Entra ID 中调试基于 SAML 的应用程序单一登录的步骤。
- 使用 Fiddler 等工具捕获 SAML 请求、响应和令牌。
- 向应用供应商发送 SAML 响应,并询问他们缺少的内容。
SAML 响应中缺少属性
若要在 Microsoft Entra 配置中添加在 Microsoft Entra 响应中发送的属性,请执行以下步骤:
至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
请导航到 Entra ID>企业应用程序>所有应用程序。
在搜索框中输入现有应用程序的名称,然后选择要为单一登录配置的应用程序。
应用加载后,在导航窗格中选择 “单一登录 ”。
在“ 用户属性 ”部分中,选择“ 查看并编辑所有其他用户属性”。 在此,您可以更改在用户登录时通过 SAML 令牌发送到应用程序的属性。
添加属性:
选择 “添加属性”。 输入 名称,然后从下拉列表中选择 “值 ”。
选择“保存”。 可在表中看到新属性。
保存配置。
下次用户登录到应用时,Microsoft Entra ID 将在 SAML 响应中发送新属性。
应用无法标识用户
登录应用失败,因为 SAML 响应缺少角色等属性。 或者它失败,因为应用程序期望NameID(用户标识符)属性的格式或值不同。
将属性添加到 Microsoft Entra 应用配置
若要更改用户标识符值,请执行以下步骤:
- 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
- 请导航到 Entra ID>企业应用程序>所有应用程序。
- 选择要为 SSO 配置的应用。
- 应用加载后,在导航窗格中选择 “单一登录 ”。
- 在 “用户属性”下,从 “用户标识符 ”下拉列表中选择用户的唯一标识符。
更改 NameID 格式
如果应用程序需要 NameID (用户标识符)属性的另一种格式,请参阅 “编辑 nameID ”部分以更改 NameID 格式。
Microsoft Entra ID 根据所选值或 SAML AuthRequest 中的应用请求的格式选择 NameID 属性(用户标识符)的格式。 有关详细信息,请参阅 单一登录 SAML 协议的“NameIDPolicy”部分。
应用程序需要不同的 SAML 响应签名方法
若要更改 SAML 令牌的哪些部分由 Microsoft Entra ID 进行数字签名,请执行以下步骤:
至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
请导航到 Entra ID>企业应用程序>所有应用程序。
选择要为单一登录配置的应用程序。
加载应用程序后,在导航窗格中选择 “单一登录 ”。
在 “SAML 签名证书”下,选择“ 显示高级证书签名设置”。
从以下选项中选择应用所需的 签名选项 :
- 对 SAML 响应进行签名
- 对 SAML 响应和断言进行签名
- 对 SAML 断言进行签名
下次用户登录到应用时,Microsoft Entra ID 将对所选 SAML 响应的一部分进行签名。
应用需要 SHA-1 签名算法
默认情况下,Microsoft Entra ID 使用最安全的算法对 SAML 令牌进行签名。 建议不要将签名算法更改为 SHA-1 ,除非应用需要 SHA-1。
若要更改签名算法,请执行以下步骤:
至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
请导航到 Entra ID>企业应用程序>所有应用程序。
选择要为单一登录配置的应用。
应用加载后,从应用左侧的导航窗格中选择 “单一登录 ”。
在 “SAML 签名证书”下,选择“ 显示高级证书签名设置”。
选择 SHA-1 作为 签名算法。
下次用户登录到应用时,Microsoft Entra ID 将使用 SHA-1 算法对 SAML 令牌进行签名。