跳转到主要内容

SSO/SCIM 电子邮件不匹配 — Ping Identity

摘要: Claude 使用电子邮件作为主要标识符来匹配 SSO 登录与已配置的席位。Ping Identity 产品(PingOne 和 PingFederate)具有灵活的分层属性配置。当 SCIM 配置和 SAML/OIDC SSO 从不同的用户属性中提取时,不匹配会阻止访问。

症状

用户在尝试通过 SSO 访问 Claude for Enterprise 时可能会遇到以下一个或多个问题:

  • "账户创建被阻止" — 用户通过 SSO 进行身份验证,但 Claude 找不到匹配的已配置账户。

  • 登陆到免费个人账户 — 如果未限制组织创建,用户会完全绕过企业组织。

  • "请确认您的电子邮件"不匹配 — SSO 回调显示的电子邮件与用户在登录时输入的电子邮件不同。

  • Claude Code 身份验证失败 — Claude Code CLI 在身份验证流程中显示电子邮件不匹配错误。

这是如何发生的

Ping Identity 产品允许在多个级别(目录、IdP 适配器、SP 连接器、应用程序)进行细粒度属性映射。SCIM 和 SSO 可以各自通过这些层的不同路径,导致到达 Claude 的电子邮件值不同:

Ping 属性

典型值

常用于

email (PingOne)

建议用于 SCIM 和 SAML/OIDC

username (PingOne)

testuser1[email protected]

默认登录标识符;可能与电子邮件不同

IdP 适配器属性 (PingFederate)

因适配器类型而异(LDAP、HTML 表单等)

PingFederate 身份源

LDAP mail 属性

PingFederate 中的目录源电子邮件

LDAP sAMAccountNameuid

可能是员工 ID 或短用户名

有时被错误地映射为电子邮件

自定义人口属性

每个环境定义的自定义字段

高级 PingOne 配置

Claude 要求 SCIM 配置的电子邮件与 SSO 声明的电子邮件之间完全字符串匹配

PingFederate 注意: PingFederate 的属性合约系统特别复杂 — 电子邮件可以通过多个层(LDAP → IdP 适配器 → 适配器合约 → SP 连接器 → 断言)。任何层的不匹配都会导致错误的值到达 Claude。端到端追踪该值。

诊断步骤

步骤 1 — 确认不匹配 (PingOne)

  1. 检查 SCIM 属性映射: 在 PingOne 管理员中,转到 连接 → 应用程序 → [Claude 应用] → 属性映射。找到映射到 emails[primary].valueemail 的属性。记下用作源的 PingOne 用户属性。

  2. 检查 SSO 属性映射: 在同一应用中,转到 SAMLOIDC 选项卡,找到映射到 email 的属性或声明。记下其源属性。

  3. 如果 SCIM 和 SSO 引用不同的 PingOne 属性,您已确认不匹配。

步骤 1(备选)— 确认不匹配 (PingFederate)

  1. 在 PingFederate 管理控制台中,找到 Claude 的 SP 连接

  2. 属性合约履行 中,找到 email 属性并将其源追踪回 IdP 适配器或 LDAP 数据存储。

  3. 分别检查 Claude 的 SCIM 配置连接器或出站配置通道,并追踪正在发送的电子邮件属性的源。

  4. 如果两条追踪线索导向不同的目录属性,您已确认不匹配。

步骤 2 — 确定问题的范围

确定这是影响一个用户还是系统性问题:

  • 如果大多数或所有已配置的用户共享相同的电子邮件格式不匹配,这是一个系统性属性映射问题。修复方案在您的 IdP 的 SCIM 属性映射中。

  • 如果只有一个或两个用户受到影响,问题可能特定于这些用户账户。直接检查他们的用户配置文件。

步骤 3 — 检查特定用户的属性值

  1. PingOne: 转到 身份 → 用户 → [用户] 并比较 用户名电子邮件 字段值。

  2. PingFederate 与 LDAP: 检查用户的 LDAP 记录并比较 mailuserPrincipalNamesAMAccountName 和您的适配器映射中使用的任何其他属性。

解决方案

PingOne — 将两个映射对齐到电子邮件属性

  1. 连接 → 应用程序 → [Claude 应用] 中,打开 属性映射

  2. 对于 SCIM:确保 emails[primary].value 映射到 PingOne 的电子邮件地址属性。

  3. 对于 SAML/OIDC:确保 email 属性或声明也映射到 PingOne 的电子邮件地址属性。

  4. 保存更改。

PingFederate — 在所有层中对齐属性合约

  1. 在 Claude 的 SP 连接中,转到 属性合约履行

  2. 找到 email 属性。确保其源是您的 SCIM 出站配置通道中使用的相同 LDAP 或数据存储属性。

  3. 如果使用自定义 IdP 适配器,确保适配器的合约包含规范电子邮件属性,并且它正确地映射到 SP 连接。

  4. 更新 SCIM 配置以使用相同的源属性。

触发完整重新同步

关键 — 需要完整同步: 增量同步不会在您更改属性映射后更新现有用户。您必须触发配置周期的完整重启

  1. PingOne: 在应用的配置设置中,触发完整配置周期。您可能需要禁用并重新启用配置以强制完整重新推送所有用户。

  2. PingFederate: 在您的出站配置通道中触发完整同步。检查您的配置日志以确认更新的电子邮件值正在被发送。

  3. 在要求用户重试登录之前,验证更新的电子邮件值出现在配置日志中。

修复后清理

在更正属性映射并完成完整同步后,您可能需要额外的清理:

  • 流氓免费账户: 联系 Anthropic 支持以删除这些账户。

  • 幽灵账户(错误电子邮件席位): 联系 Anthropic 支持以取消配置这些幽灵账户。

  • 席位可用性: 如果幽灵账户占用了所有合约席位,新登录将失败。联系支持。

  • 重新添加受影响的用户: 删除幽灵账户后,用户可能需要被重新邀请或重新配置。

防止未来发生: 在您的企业设置中启用"限制组织创建"。

验证

  1. 检查已配置用户的样本 — 确认他们在您的 IdP 配置日志中的电子邮件与 SSO 发送的电子邮件格式匹配。

  2. 要求受影响的用户清除 claude.ai 的浏览器 Cookie,然后通过 SSO 登录。

  3. 确认用户没有意外创建免费账户。

  4. 如果 Claude Code 受到影响,让用户重新运行 claude auth login --enterprise 并确认电子邮件与其企业席位匹配。

常见陷阱

陷阱

解决方案

使用 PingOne username 字段而不是 email

将 SCIM 映射切换到 PingOne 的电子邮件地址属性。

PingFederate 属性在合约层之间不匹配

端到端追踪电子邮件属性:LDAP 源 → IdP 适配器 → 适配器合约 → SP 连接器 → 断言。

LDAP sAMAccountNameuid 映射为电子邮件源

改用 LDAP mail 属性。

增量配置同步不更新现有用户

更改属性映射后需要完整重新同步。

属性合约在 PingFederate 中更新但 SCIM 连接器未更新

SP 连接和出站 SCIM 配置通道必须独立更新。

SCIM 中的电子邮件已更新但用户仍无法登录

检查流氓免费组织或幽灵账户。清除浏览器 Cookie 并重试。

何时联系 Anthropic 支持

  • SCIM 和 SSO 属性看起来相同,但用户仍无法访问其席位。

  • 您需要确认 Claude 在 SCIM 配置期间为特定用户记录的电子邮件。

  • 您需要帮助清理幽灵账户或流氓免费组织。

  • 用户遇到席位不足错误,尽管您的合约有可用席位。

联系 [email protected],并提供您组织的域、受影响用户的电子邮件地址以及您的属性映射的屏幕截图。

这是否解答了您的问题?