Skip to main content

将企业迁移到新的标识提供者或租户

如果你的企业将在初始配置安全断言标记语言 (SAML) 或 OpenID Connect (OIDC) 和 SCIM 之后,使用新的标识提供者 (IdP) 或租户进行身份验证和预配,则可以迁移到新的配置。

谁可以使用此功能?

Enterprise owners and people with administrative access to your IdP can migrate your enterprise to a new IdP or tenant.

Enterprise Managed Users 可用于 GitHub Enterprise Cloud 上的新企业帐户。 请参阅“关于 Enterprise Managed Users”。

关于 IdP 和租户之间的迁移

使用 Enterprise Managed Users 时,可能需要将企业迁移到你的 IdP 或不同身份管理系统上的新租户。 例如,你可能已准备好从测试环境迁移到生产环境,或者你的公司已决定使用新的身份系统。

在迁移到新的身份验证和预配配置之前,请查看先决条件和指南,以做好充分准备。 准备好迁移后,你要为企业禁用身份验证和预配,然后重新配置两者。 无法编辑用于身份验证和预配的现有配置。

当禁用企业身份验证时,GitHub 会删除与企业 托管用户帐户 关联的现有 SCIM 标识。 有关对包含企业托管用户的企业禁用身份验证的影响的更多详细信息,请参阅 为企业托管用户禁用身份验证

在迁移结束时重新配置身份验证和预配后,需要从新的 IdP/租户重新预配用户和组。 重新预配用户时,GitHub 会将规范化的 SCIM userName 属性值与企业中的 GitHub 用户名(_[shortcode] 之前的部分)进行比较,以便将新 IdP/租户中的 SCIM 标识链接到现有企业托管用户帐户。 有关详细信息,请参阅“外部身份验证的用户名注意事项”。

先决条件

  • 开始使用 GitHub Enterprise Cloud 时,必须选择创建 具有托管用户的企业。 有关详细信息,请参阅“为 GitHub Enterprise Cloud 选择企业类型”。
  • 查看并了解从外部身份管理系统与 Enterprise Managed Users 集成的要求。 为了简化配置和支持,可以使用单个合作伙伴 IdP 进行“铺平路径”集成。 或者,也可以使用符合安全断言标记语言 (SAML) 2.0 和跨域身份管理系统 (SCIM) 2.0 标准的系统来配置身份验证。 有关详细信息,请参阅“关于 Enterprise Managed Users”。
  • 必须已为企业配置了身份验证和 SCIM 预配。

准备迁移

若要迁移到用于身份验证和预配的新配置,必须首先为企业禁用身份验证和预配。 在禁用现有配置之前,请了解以下注意事项:

  • 在迁移之前,请确定新环境中的规范化 SCIM userName 属性的值对于 托管用户帐户 是否保持不变。 这些规范化的 SCIM userName 属性值必须对用户保持不变,以便从新的 IdP/租户预配的 SCIM 标识能够正确链接到现有的企业托管用户帐户。 有关详细信息,请参阅“外部身份验证的用户名注意事项”。

    • 如果在迁移后规范化 SCIM userName 值保持不变,则可以自行完成迁移。
    • 如果规范化 SCIM userName 值在迁移后发生更改,GitHub 将需要帮助你进行迁移。 有关详细信息,请参阅“在规范化 SCIM userName 值将更改时迁移”。
  • 在迁移完成之前,不要从身份管理系统上的 Enterprise Managed Users 的应用程序中删除任何用户或组。

  • GitHub 将删除与企业的 托管用户帐户 关联的所有 personal access tokens 和 SSH 密钥。 在重新配置之后,规划迁移窗口,在此期间,你可以创建和提供任何外部集成的新凭据。

  • 在下面的迁移步骤中,GitHub 在禁用企业身份验证时会删除企业中的所有 SCIM 预配组。 有关详细信息,请参阅“为企业托管用户禁用身份验证”。

如果这些 SCIM 预配的 IdP 组中有任何一个链接到企业中的团队,GitHub 上这些团队与 IdP 组之间的链接将被删除,且迁移后不会自动恢复这些链接。 GitHub 也会删除所有来自之前链接的团队中的成员。 如果使用身份管理系统上的组,来管理对组织或许可证的访问,则可能遇到中断。 GitHub 建议在迁移之前使用 REST API 列出团队连接和组成员身份,并在之后恢复连接。 有关详细信息,请参阅 REST API 文档中的“外部组的 REST API 终结点”。

迁移到新的 IdP 或租户

若要迁移到新的 IdP 或租户,你必须完成以下任务。

  1. 验证匹配的 SCIM userName 属性
  2. 下载单一登录恢复代码
  3. 禁用当前 IdP 上的预配
  4. 禁用企业身份验证
  5. 验证企业成员的挂起
  6. 重新配置身份验证和预配

1. 验证匹配的 SCIM userName 属性

若要实现无缝迁移,请确保新 SCIM 提供程序上的 SCIM userName 属性与旧 SCIM 提供程序上的属性相匹配。 如果这些属性不匹配,请参阅“在规范化 SCIM userName 值将更改时迁移”。

2. 下载单一登录恢复代码

如果还没有企业的单一登录恢复代码,请立即下载这些代码。 有关详细信息,请参阅“下载企业帐户的单一登录恢复代码”。

3. 禁用当前 IdP 上的预配

  1. 在当前 IdP 上,在应用程序中停用 Enterprise Managed Users 的预配。
    • 如果使用 Entra ID,请导航到应用程序的“预配”选项卡,然后单击“停止预配”****。
    • 如果使用 Okta,请导航到应用程序的“预配”选项卡,单击“集成”选项卡,然后单击“编辑” 。 取消选择“启用 API 集成”。
    • 如果使用 PingFederate,请导航到应用程序的通道设置。 在“激活和摘要”选项卡中,单击“活动”或“非活动”切换预配状态,然后单击“保存” 。 有关管理预配的详细信息,请参阅 PingFederate 文档中的“查看通道设置”和“管理通道”。
    • 如果使用其他身份管理系统,请参阅系统的文档,咨询支持团队或利用其他资源。

4.禁用企业身份验证

  1. 使用恢复代码以安装用户身份登录到 GitHub,其用户名是企业短代码,后缀为 _admin。 有关设置用户的详细信息,请参阅“Enterprise Managed Users 入门”。
  2. 禁用企业身份验证。 有关详细信息,请参阅“为企业托管用户禁用身份验证”。
  3. GitHub 最多需要一小时来暂停企业成员、删除链接的 SCIM 标识和删除 SCIM 预配的 IdP 组。

5. 验证企业成员的挂起

在 GitHub 企业设置中禁用身份验证后,GitHub 会暂停企业中的所有 托管用户帐户(设置的用户帐户除外)。 可以在 GitHub 上验证企业成员是否已被暂停。

  1. 查看企业中的挂起成员。 有关详细信息,请参阅“查看企业中的人员”。
  2. 如果企业中的所有托管用户帐户尚未被暂停,请继续在 GitHub 中等待和监视,待都被暂停后再执行后续步骤。

6. 重新配置身份验证和预配

确认企业成员挂起后,重新配置身份验证和预配。

  1. 使用 SAML 或 OIDC SSO 配置身份验证。 有关详细信息,请参阅“为企业托管用户配置身份验证”。
  2. 配置 SCIM 预配。 有关详细信息,请参阅“为企业托管用户配置 SCIM 预配”。

7.确保从新的 IdP/租户重新预配用户和组

  1. 若要取消暂停 托管用户帐户 并允许其登录 GitHub,需要从新的 IdP/租户重新预配这些用户。 这会将新 IdP/租户中的 SCIM 标识链接到现有的企业托管用户帐户。 企业托管用户必须具有链接的 SCIM 标识才能登录。
    • 重新预配 IdP 用户帐户时,如果用户已成功从新的 IdP/租户链接到其 SCIM 标识,企业设置中其页面上会显示 SSO identity linked 链接,其中会显示一个包含 SCIM 属性的 SCIM identity 部分。 有关详细信息,请参阅“查看企业中的人员”。
    • 还可以在企业审核日志中查看相关 external_identity.* 事件和 user.unsuspend 事件。 有关详细信息,请参阅 企业的审核日志事件
  2. 组也需要从新的 IdP/租户重新预配。
  3. 将 IdP 组重新预配到企业后,管理员可以根据需要将组链接到企业中的团队。

在规范化 SCIM userName 值更改时迁移

如果规范化 SCIM userName 值将更改,GitHub 必须为迁移预配新的企业帐户。 请与我们的销售团队联系以获取帮助。