关于 IdP 和租户之间的迁移
使用 Enterprise Managed Users时,可能需要将企业迁移到 IdP 上的新租户,或者迁移到其他标识管理系统。 例如,你可能已准备好从测试环境迁移到生产环境,或者你的公司已决定使用新的身份系统。
在迁移到新的身份验证和预配配置之前,请查看先决条件和指南,以做好充分准备。 准备好迁移后,你要禁用企业的身份验证和服务供应,然后重新配置这两项。 无法编辑用于身份验证和预配的现有配置。
GitHub 在为企业禁用身份验证时,将删除与企业 托管用户帐户 关联的现有 SCIM 标识。 有关对包含企业托管用户的企业禁用身份验证的影响的更多详细信息,请参阅 [AUTOTITLE](/admin/managing-iam/configuring-authentication-for-enterprise-managed-users/disabling-authentication-and-provisioning-for-enterprise-managed-users#about-disabled-authentication-for-enterprise-managed-users)。
在迁移结束时重新配置身份验证和预配后,需要从新的 IdP/租户重新预配用户和组。 重新预配用户时,GitHub会将规范化的 SCIM userName 属性值与企业中GitHub用户名(企业中_[shortcode]之前的部分)进行比较,以便将 SCIM 标识从新的 IdP/租户链接到现有的企业托管用户帐户。 有关详细信息,请参阅“外部身份验证的用户名注意事项”。
先决条件
- 开始使用 GitHub Enterprise Cloud 时,必须选择创建 具有托管用户的企业。 有关详细信息,请参阅“为 GitHub Enterprise Cloud 选择企业类型”。
- 查看并了解从外部标识管理系统与 Enterprise Managed Users 集成的要求。 为了简化配置和支持,可以使用单个合作伙伴 IdP 进行“铺平路径”集成。 或者,也可以使用符合安全断言标记语言 (SAML) 2.0 和跨域身份管理系统 (SCIM) 2.0 标准的系统来配置身份验证。 有关详细信息,请参阅“关于 Enterprise Managed Users”。
- 必须已为企业配置了身份验证和 SCIM 预配。
准备迁移
若要迁移到用于身份验证和预配的新配置,必须首先为企业禁用身份验证和预配。 在禁用现有配置之前,请了解以下注意事项:
-
在迁移之前,请确定规范化 SCIM
userName属性的值在新环境中是否保持不变 托管用户帐户 。 这些规范化的 SCIMuserName属性值必须对用户保持不变,以便从新的 IdP/租户预配的 SCIM 标识能够正确链接到现有的企业托管用户帐户。 有关详细信息,请参阅“外部身份验证的用户名注意事项”。- 如果在迁移后规范化 SCIM
userName值保持不变,则可以自行完成迁移。 - 如果迁移后规范化的 SCIM
userName值将发生变化,那么GitHub需要协助进行迁移。 有关更多信息,请参阅规范化 SCIMuserName值将更改时的迁移。
- 如果在迁移后规范化 SCIM
-
在迁移完成后,不要从应用程序中 Enterprise Managed Users 删除标识管理系统中的任何用户或组。
-
GitHub将删除与企业personal access tokens关联的任何托管用户帐户或 SSH 密钥。 在重新配置之后,规划迁移窗口,在此期间,你可以创建和提供任何外部集成的新凭据。
-
在以下迁移步骤中,在为企业禁用身份验证时, GitHub 将删除企业中的所有 SCIM 预配组。 如果用户是通过任何 SCIM 预配组添加的,则系统会将其从组织中删除。 有关详细信息,请参阅“为企业托管用户禁用身份验证”。
如果这些 SCIM 预配的 IdP 组中的任何一个都链接到企业中的团队,这将删除这些团队 GitHub 与 IdP 组之间的链接,并且迁移后不会自动恢复这些链接。 GitHub 还将从以前链接的团队中删除所有成员。 如果使用身份管理系统上的组,来管理对组织或许可证的访问,则可能遇到中断。 GitHub 建议在迁移之前使用 REST API 列出团队连接和组成员身份,并在之后恢复连接。 有关详细信息,请参阅 REST API 文档中的“外部组的 REST API 终结点”。
迁移到新的 IdP 或租户
若要迁移到新的 IdP 或租户,你必须完成以下任务。
-
[验证匹配的 SCIM `userName` 属性](#1-validate-matching-scim-username-attributes)。 -
[下载单一登录恢复代码](#2-download-single-sign-on-recovery-codes)。 -
[禁用当前 IdP 上的预置](#3-disable-provisioning-on-your-current-idp)。 -
[禁用企业身份验证](#4-disable-authentication-for-your-enterprise)。 -
[验证企业成员的暂停状态](#5-validate-suspension-of-your-enterprises-members)。 -
[重新配置身份验证和预配](#6-reconfigure-authentication-and-provisioning)。
1. 验证匹配的 SCIM userName 属性
若要实现无缝迁移,请确保新 SCIM 提供程序上的 SCIM userName 属性与旧 SCIM 提供程序上的属性相匹配。 如果这些属性不匹配,请参阅规范化 SCIM userName 值将更改时的迁移。
2. 下载单一登录恢复代码
如果还没有企业的单一登录恢复代码,请立即下载这些代码。 有关详细信息,请参阅“下载企业帐户的单一登录恢复代码”。
3. 禁用当前 IdP 上的预配
- 在当前 IdP 上,停用应用程序中的预配。Enterprise Managed Users
4.禁用企业身份验证
- 使用恢复代码以设置用户的身份登录 GitHub,其用户名是您的企业短代码并加上后缀
_admin。 有关设置用户的详细信息,请参阅“Enterprise Managed Users 入门”。 - 禁用企业身份验证。 有关详细信息,请参阅“为企业托管用户禁用身份验证”。
- 等待 GitHub 完成以下操作:暂停您的企业成员,删除已链接的 SCIM 标识,以及删除使用 SCIM 预配的 IdP 组。
注意
- 禁用身份验证后,GitHub运行多个后台任务,必须先完成这些任务,然后才能继续执行本文中的剩余步骤。 对于大型企业来说,这可能需要几个小时甚至几天的时间。
- 若要确认完成,请转到企业身份验证设置页(企业设置→身份验证安全性)。 当任务仍在运行时,将禁用“启用 OIDC 配置”或“添加 SAML 配置”按钮,并且会看到一条警告,如“正在删除以前的 SAML 提供程序”。
5. 验证企业成员的挂起
在企业设置中 GitHub 禁用身份验证后, GitHub 将暂停企业中的所有 托管用户帐户 (除了设置用户帐户)。 您可以在GitHub上验证贵公司成员的停职。
- 查看企业中的挂起成员。 有关详细信息,请参阅“查看企业中的人员”。
- 如果企业中的所有托管用户帐户尚未暂停,请在继续下一步之前继续等待和监视 GitHub 。
6. 重新配置身份验证和预配
确认企业成员挂起后,重新配置身份验证和预配。
- 使用 SAML 或 OIDC SSO 配置身份验证。 有关详细信息,请参阅“为企业托管用户配置身份验证”。
- 配置 SCIM 预配。 有关详细信息,请参阅“配置 SCIM 预配 (适用于企业托管用户)”。
7.确保从新的 IdP/租户重新预配用户和组
- 若要取消暂停用户 托管用户帐户 并允许他们登录 GitHub,必须从新的 IdP/租户重新预配用户。 这会将新 IdP/租户中的 SCIM 标识链接到现有的企业托管用户帐户。 企业托管用户必须具有链接的 SCIM 标识才能登录。
- 组也需要从新的 IdP/租户重新预配。
- 重新预配 IdP 组时,监视进度 GitHub,并查看企业审核日志中的相关
external_group.provision、external_group.scim_api_failure和external_group.scim_api_success事件。 有关详细信息,请参阅 使用标识提供者组管理团队成员身份 和 企业的审核日志事件。
- 重新预配 IdP 组时,监视进度 GitHub,并查看企业审核日志中的相关
- 将 IdP 组重新预配到企业后,管理员可以根据需要将组链接到企业中的团队。
在规范化 SCIM userName 值更改时迁移
如果规范化的 SCIM userName 值将更改, GitHub 则必须为迁移预配新的企业帐户。
请与我们的销售团队联系以获取帮助。