Skip to main content

Enterprise Server 3.20 目前作为发布候选版本提供。

使用 SCIM 从 LDAP 迁移到 SAML

了解如何将你的 GitHub Enterprise Server 实例从 LDAP 身份验证迁移到带有 SCIM 预配的 SAML 单点登录,以实现集中式用户管理。

谁可以使用此功能?

Site administrators can migrate authentication methods on GitHub Enterprise Server.

关于从 LDAP 迁移到 SAML 和 SCIM

如果你的 GitHub Enterprise Server 实例当前使用 LDAP 身份验证,你可以迁移到带有 SCIM 预配的 SAML 单点登录 (SSO),以增强用户生命周期管理功能。 通过此迁移,可以从身份提供商(IdP)自动预配、更新和取消预配用户帐户。

注意

可以使用 SAML 或 LDAP,但不能同时使用两者。

          **先决条件**:
  • 你必须是 GitHub Enterprise Server 的站点管理员。
  • 必须具有对 SAML 标识提供者的管理访问权限。
  • IdP 必须支持 SAML 2.0 和 SCIM 2.0 协议。
  • 在开始迁移之前,应先完成实例的备份。

SCIM 预配需要 SAML 身份验证作为先决条件,因此此迁移涉及四个不同的阶段:

  1.        **迁移到 SAML 身份验证**:将 LDAP 替换为 SAML SSO。
    
  2.        **测试和验证 SAML**:确认身份验证正常工作,用户链接正确。
    
  3.        **启用 SCIM 预配**:添加自动化用户管理功能。
    
  4.        **测试和验证 SCIM**:确认账户预配中的身份标识与现有账户相链接。
    

本文档假定熟悉 SAML 身份验证和 SCIM 预配。 有关这些主题的详细信息,请参阅 为企业配置 SAML 单点登录关于在 GitHub Enterprise Server 上使用 SCIM 进行用户预配

1.了解 LDAP 与 SCIM 用户创建模式

在开始迁移之前,了解 LDAP 和 SCIM 在 GitHub Enterprise Server 上处理用户管理的关键差异非常重要。

AttributeLDAPSCIM
          **设备配置** | 在管理控制台中配置用户 ID 属性(默认值 `uid`)和其他 LDAP 设置。 此配置确定如何在 LDAP 用户与GitHub用户之间进行映射。 有关配置 LDAP 的详细信息,请参阅 [AUTOTITLE](/admin/managing-iam/using-ldap-for-enterprise-iam/using-ldap#ldap-attributes)。 | 首先启用 SAML 身份验证,然后使用身份验证令牌配置 SCIM 预配。 |

| 用户创建时机 | 实时:用户在成功 LDAP 身份验证后首次登录时创建。 | 预身份验证:用户必须先通过 SCIM 进行预配,然后才能进行身份验证。 | | 初始用户名源 | GitHub用户名基于安装过程中配置的规范化 LDAP 标识符。 | GitHub用户名基于 IdP 中的规范化 SCIM userName 值。 | | 用户名管理 | 灵活:管理员可以独立于 LDAP 更改GitHub用户名。 用户名可能会随时间推移而偏离 LDAP 标识符,同时通过 LDAP 映射维护身份验证。 请参阅“用户名参考”。 | 严格:GitHub用户名始终与 IdP 中的规范化 SCIM userName相对应。 不允许GitHub端的用户名更改。 | | 用户属性控件 | 混合:一些由 LDAP 管理的属性,其他属性可以在设备上管理。 | IdP 的全面管理:所有用户属性都通过来自 IdP 的 SCIM 更新进行管理。 | | 身份验证流程 | GitHub Enterprise Server 对 LDAP 服务器进行身份验证,并查找现有的 LDAP 映射来定位用户。 | 在 SAML SSO 期间,将执行外部标识查找以查找预配的用户进行身份验证。 | | 关键特征 | 混合系统,其中GitHub用户数据(尤其是用户名)可以独立于 LDAP 服务器在设备上进行部分管理。 | 完全标识提供者控制:GitHub用户的状态完全取决于 IdP 通过 SCIM 发送的内容,并且用户名无法偏离源系统。 |

用户名规范化和兼容性

GitHub Enterprise Server 根据适用于 LDAP、SAML 和 SCIM 的特定规则,统一规范用户名。 了解这些规则对于成功迁移至关重要。

有关用户名规范化的详细信息,请参阅 外部身份验证的用户名注意事项

2.规划迁移

在开始迁移之前,需要了解当前设置、准备标识提供者并建立备份访问方法。 规划阶段对于确保平稳过渡至关重要。

准备从 LDAP 映射到 SCIM

关键迁移挑战在于 LDAP 与 SCIM 用户管理方法之间的桥接:

          **LDAP 用户(现有状态)**:
  • 自初始创建以来可能已更改的GitHub用户名

  • 通过 LDAP 映射保留身份验证功能,而不考虑用户名更改

            **SCIM 用户(目标状态)**:
    
  • 必须在身份验证之前预配

  • 必须具有与规范化 SCIM userName 值匹配的GitHub用户名

  • 可以在 SCIM 用户预配期间使用其现有GitHub帐户链接到外部标识,但前提是规范化 SCIM userName与其现有GitHub用户名匹配

迁移映射要求

若要成功将 SCIM 标识链接到现有 LDAP 用户,需要捕获实例上用户的当前状态:

  1.        **Export 现有GitHub用户名**:使用站点管理员界面、API 或 CLI 获取实例上当前GitHub用户名的完整列表。 有关用户 API 的详细信息,请参阅 [AUTOTITLE](/rest/users/users?apiVersion=2022-11-28#list-users)。 有关用于导出用户的命令行实用工具的详细信息,请参阅 [AUTOTITLE](/admin/administering-your-instance/administering-your-instance-from-the-command-line/command-line-utilities#ghe-user-csv)。
    
  2.        **将 GitHub 用户名映射到企业 IdP 中的真实用户**:确定哪些身份对应于您企业中的每个 GitHub 用户名。
    
  3.        **配置 SCIM `userName` 属性**:确保 IdP 使用与要链接的现有GitHub用户名匹配的 `userName` 值预配 SCIM 用户。
    
           **Important**:映射的目标始终是实例上的**current GitHub username**,而不是原始 LDAP 用户 ID 或任何其他标识符。
    

关键规划注意事项

          **重要注意事项:**

* 需要停机:此迁移需要在维护时段内停机才能更改身份验证设置。 * 用户影响:迁移后,用户需要通过 SAML IdP 而不是 LDAP 凭据进行身份验证。 * 团队成员身份:如果 IdP 支持,LDAP 团队同步将替换为 SCIM 组预配。 与 LDAP 映射的团队需要在适用的情况下使用适当的 SCIM 组进行更新。

获取 LDAP 配置的状态

记录当前的 LDAP 设置以规划等效的 SAML/SCIM 映射:

  1. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击“”。
  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。1. 在“ 站点管理”边栏中,单击“管理控制台”****。1. 在“设置”边栏中,单击“身份验证”。
  3. 记录以下 LDAP 设置: * 域基础 和受限用户组 * User ID 属性(用于创建GitHub用户名) * 配置文件名称、电子邮件和其他属性映射 * 管理员组配置 * 团队同步设置
  4. 确保你已保存实例上将要链接到 SCIM 标识的现有用户列表。

3.迁移到 SAML 和 SCIM

完成规划后,即可开始从 LDAP 迁移到 SAML 身份验证。 这包括在你的标识提供商和 GitHub Enterprise Server 上配置 SAML,然后在继续配置 SCIM 之前仔细测试该配置。

          **重要说明**:配置 SAML 时,启用“允许创建具有内置身份验证的帐户”,以减少启用 SCIM 时所需的步骤数。

启用 SAML 身份验证

有关详细的 SAML 配置步骤,请参阅 为企业配置 SAML 单点登录

启用 SAML 后,在继续 SCIM 之前测试身份验证系统。 将任何 IdP 帐户分配给针对实例配置的 SAML 应用程序后,请验证是否能够成功执行 SSO 登录。

          **在 SAML 身份验证正常工作之前,请不要继续 SCIM。**

启用 SCIM 预配

确认 SAML 身份验证正常工作后,可以启用 SCIM 进行自动化用户管理。 必须在 GitHub Enterprise Server 和你的标识提供商上都配置 SCIM。

有关启用 SCIM 的详细步骤,请参阅 配置 SCIM 预配 (用于管理用户)

测试 SCIM 配置功能

测试 SCIM 预配,以确保 SCIM 预配的用户正确链接到现有用户帐户。

对于已从 LDAP/SAML 迁移中拥有帐户的用户:

  1.        **在你的 IdP 中将用户分配到 SCIM 应用程序** 。
    
  2.        **验证自动链接**:检查 SCIM 是否自动链接到现有帐户:
    
    • 用户保留相同的用户名和帐户数据
    • 不会创建重复帐户
    • SCIM 标识在企业设置和站点管理员界面中显示为已链接。 有关详细信息,请参阅“查看和管理用户对企业的 SAML 访问”。
  3.        **查看审核日志**:查找显示成功链接到现有用户的`external_identity.scim_api_success`和`external_identity.provision`事件。
    

对于未曾出现在您实例中的新用户:

  1.        **验证用户创建**:检查用户是否出现在 GitHub Enterprise Server 中,并具有正确的属性。
    
  2.        **测试身份验证**:确认新用户可以通过 SAML 进行身份验证。
    
  3.        **测试属性更新**:更新 IdP 中的用户信息并确认更改同步。
    
  4.        **测试撤销配置**:删除用户访问并确认其已禁用。
    

向所有用户推出 SCIM

对于尚未通过 SCIM 预配的所有剩余用户:

  1.        **逐渐将用户分配到** IdP 中的 GitHub Enterprise Server 应用程序。
    
  2.        **监视链接过程**:根据用户名匹配监视成功的自动链接。
    
  3.        **跟踪进度**:使用审核日志监视 `external_identity` 事件以链接进度。
    
  4.        **解决任何冲突**:解决出现的用户名冲突或映射冲突问题。
    

4. 更新团队和组织成员身份

迁移后,如果以前使用 LDAP 组同步来控制团队成员身份,则可以将这些团队映射替换为 SCIM 组。 如果重用现有团队,则需要在链接 IdP 组之前删除所有团队成员。

有关详细信息,请参阅“使用标识提供者组管理团队成员身份”。