排查单点登录
在配置或使用单点登录 (SSO) 时,您可能会遇到源自身份提供商 或 Docker 配置的问题。以下部分介绍了如何在 Docker 管理控制台中查看错误消息,以及一些常见错误和可能的解决方案。您也可以查看身份提供商的文档,了解是否可以在其服务中查看错误日志。
查看 SSO 和 SCIM 错误日志
登录到 管理控制台。
在左侧导航下拉菜单中选择您的组织或公司, 然后选择 SSO 和 SCIM。
注意
当组织属于某个公司时,您必须选择该公司并在公司层级查看该组织的 SSO 连接。
在 SSO 连接表中,选择操作图标和查看错误日志。将显示连接错误页面,其中列出了过去 7 天内发生的错误。
在 连接错误 页面中,选择错误消息旁边的 查看错误详情 以获取更多详细信息。会出现一个包含更多详细信息的 JSON 对象的模态窗口。
常见 SSO 错误及解决方案
查看 SSO 和 SCIM 错误日志,然后使用以下部分解决常见配置错误。
此连接未启用 IdP 发起的登录
针对此问题,错误日志中会出现类似如下的错误信息。
IdP-Initiated sign in is not enabled for connection '$ssoConnection'.Docker 不支持 IdP 发起的 SAML 流程。当用户尝试从 IdP 进行身份验证时(例如使用仪表板上的 Docker SSO App 磁贴),可能会发生此错误。
可能的解决方案:
- 用户必须从 Docker 应用程序(Hub、Desktop 等)发起身份验证。 用户需要输入他们的电子邮件地址,然后他们将根据其域名被重定向到配置的 SSO IdP。
- (可选)将 Docker SSO 应用配置为对 IdP 上的用户不可见, 这样用户就不会尝试从那里开始认证。
组织内席位不足
针对此问题,错误日志中会出现类似如下的错误信息。
Not enough seats in organization '$orgName'. Add more seats or contact your administrator.当尝试通过 SSO 即时配置或 SCIM 将用户配置到组织中时,如果该组织没有可用的用户席位,则可能会发生此错误。
可能的解决方案:
SSO 连接的域名未验证
针对此问题,错误日志中会出现类似如下的错误信息。
Domain '$emailDomain' is not verified for your SSO connection. Contact your company administrator. TraceID: XXXXXXXXXXXXXX如果 IdP 通过 SSO 对用户进行了身份验证,并且返回给 Docker 的 UPN 与 Docker 中配置的 SSO 连接关联的任何已验证域都不匹配,则会出现此错误。
可能的解决方案:
- 确保 IdP SSO 连接在断言属性(属性映射)中返回正确的 UPN 值。
- 添加并验证您的 IdP 用作 UPN 的所有域和子域, 并将它们关联到您的 Docker SSO 连接。有关更多详细信息,请参阅 配置单点登录。
无法找到会话
针对此问题,错误日志中会出现类似如下的错误信息。
We couldn't find your session. You may have pressed the back button, refreshed the page, opened too many sign-in dialogs, or there is some issue with cookies. Try signing in again. If the issue persists, contact your administrator.此错误通常发生在身份验证流程中,当用户在浏览器上点击后退或刷新按钮时。这会导致登录流程丢失初始身份验证请求,而该请求是完成所有身份验证流程所必需的。
可能的解决方案:
- 请勿在登录过程中点击返回或刷新按钮。
- 关闭浏览器标签页,并在应用(Docker Desktop、Hub 等)中从头开始认证流程
用户未分配到该组织
针对此问题,错误日志中会出现类似如下的错误信息。
User '$username' is not assigned to this SSO organization. Contact your administrator. TraceID: XXXXXXXXXXXXX如果禁用了 SSO 即时 (JIT) 预配,则会出现此错误。JIT 预配确保用户在通过 SSO 认证后被添加到组织中。可以选择禁用 JIT 预配,以防止用户自动占用组织中的席位,或者当 SCIM 被用作用户预配的唯一选项时。
可能的解决方案:
- 审查您的 SSO 连接配置并启用 JIT 预配置,以便在通过 SSO 认证后将所有用户添加到组织。有关更多详细信息,请参阅 即时 (JIT) 预配置。
- 如果应保持禁用 JIT 预配,则通过手动邀请将用户添加到组织。下次用户通过 SSO 进行身份验证时,由于已被邀请,他们将被添加到组织中。有关更多详细信息,请参阅 管理组织成员。
- 如果 SCIM 应该预置用户,请确保控制 SCIM 预置的 IdP 已正确配置,以便在用户被分配到应用程序时立即与 Docker 同步用户。有关更多详细信息,请参阅您的身份提供商文档。
名称ID不是电子邮件地址
针对此问题,错误日志中会出现类似如下的错误信息。
The name ID sent by the identity provider is not an email address. Contact your company administrator.此错误可能在 SAML 身份验证期间发生,当您的 IdP 发回的名称 ID (UPN) 不符合要求的电子邮件地址格式时。Docker SSO 应用程序要求名称标识符必须是用户的主电子邮件地址。
可能的解决方案:
- 确保 Name ID 属性格式为
EmailAddress。