关于从 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 身份验证作为先决条件,因此此迁移涉及四个不同的阶段:
- 迁移到 SAML 身份验证:将 LDAP 替换为 SAML SSO。
- 测试和验证 SAML:确认身份验证正常工作,用户链接正确。
- 启用 SCIM 预配:添加自动化用户管理功能。
- 测试和验证 SCIM:确认预配将标识链接到现有帐户。
本文档假定熟悉 SAML 身份验证和 SCIM 预配。 有关这些主题的详细信息,请参阅 AUTOTITLE 和 AUTOTITLE。
1.了解 LDAP 与 SCIM 用户创建模式
在开始迁移之前,了解 LDAP 和 SCIM 在 GitHub Enterprise Server 上处理用户管理的关键差异非常重要。
| Attribute | LDAP | SCIM |
|---|---|---|
| 设备配置 | 在管理控制台中配置用户 ID 属性(默认值 )和其他 LDAP 设置。 此配置确定如何在 LDAP 用户与GitHub用户之间进行映射。 有关配置 LDAP 的详细信息,请参阅 AUTOTITLE。 | 首先启用 SAML 身份验证,然后使用身份验证令牌配置 SCIM 预配。 |
| 用户创建时机 | 实时:用户在成功 LDAP 身份验证后首次登录时创建。 | 预身份验证:用户必须先通过 SCIM 进行预配,然后才能进行身份验证。 |
| 初始用户名源 | GitHub用户名基于安装过程中配置的规范化 LDAP 标识符。 | GitHub用户名基于 IdP 中的规范化 SCIM userName 值。 |
| 用户名管理 | 灵活:管理员可以独立于 LDAP 更改GitHub用户名。 用户名可能会随时间推移而偏离 LDAP 标识符,同时通过 LDAP 映射维护身份验证。 请参阅“AUTOTITLE”。 | 严格: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 的特定规则,统一规范用户名。 了解这些规则对于成功迁移至关重要。
有关用户名规范化的详细信息,请参阅 AUTOTITLE。
2.规划迁移
在开始迁移之前,需要了解当前设置、准备标识提供者并建立备份访问方法。 规划阶段对于确保平稳过渡至关重要。
准备从 LDAP 映射到 SCIM
关键迁移挑战在于 LDAP 与 SCIM 用户管理方法之间的桥接:
LDAP 用户(现有状态):
- 自初始创建以来可能已更改的GitHub用户名
- 通过 LDAP 映射保留身份验证功能,而不考虑用户名更改
SCIM 用户(目标状态):
- 必须在身份验证之前预配
- 必须具有与规范化 SCIM
userName值匹配的GitHub用户名 - 可以在 SCIM 用户预配期间使用其现有GitHub帐户链接到外部标识,但前提是规范化 SCIM
userName与其现有GitHub用户名匹配
迁移映射要求
若要成功将 SCIM 标识链接到现有 LDAP 用户,需要捕获实例上用户的当前状态:
-
**Export 现有GitHub用户名**:使用站点管理员界面、API 或 CLI 获取实例上当前GitHub用户名的完整列表。 有关用户 API 的详细信息,请参阅 AUTOTITLE。 有关用于导出用户的命令行实用工具的详细信息,请参阅 AUTOTITLE。 -
**将 GitHub 用户名映射到企业 IdP 中的真实用户**:确定哪些身份对应于您企业中的每个 GitHub 用户名。 -
**配置 SCIM `userName` 属性**:确保 IdP 使用与要链接的现有GitHub用户名匹配的 `userName` 值预配 SCIM 用户。 **Important**:映射的目标始终是实例上的**current GitHub username**,而不是原始 LDAP 用户 ID 或任何其他标识符。
关键规划注意事项
重要注意事项:
- 需要停机:此迁移需要在维护时段内停机才能更改身份验证设置。
- 用户影响:迁移后,用户需要通过 SAML IdP 而不是 LDAP 凭据进行身份验证。
- 团队成员身份:如果你的 IdP 支持,LDAP 团队同步将被 SCIM 组预配取代。 与 LDAP 映射的团队需要在适用的情况下使用适当的 SCIM 组进行更新。
获取 LDAP 配置的状态
记录当前的 LDAP 设置以规划等效的 SAML/SCIM 映射:
- 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击“”。
- 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。1. 在“ 站点管理”边栏中,单击“管理控制台”****。1. 在“设置”边栏中,单击“身份验证”。
- 记录以下 LDAP 设置:
- 域基础 和受限用户组
-
**User ID 属性**(用于创建GitHub用户名) - 配置文件名称、电子邮件和其他属性映射
- 管理员组配置
- 团队同步设置
- 确保你已保存实例上将要链接到 SCIM 标识的现有用户列表。
3.迁移到 SAML 和 SCIM
完成规划后,即可开始从 LDAP 迁移到 SAML 身份验证。 这包括在你的标识提供商和 GitHub Enterprise Server 上配置 SAML,然后在继续配置 SCIM 之前仔细测试该配置。
重要说明:配置 SAML 时,启用“允许创建具有内置身份验证的帐户”,以减少启用 SCIM 时所需的步骤数。
启用 SAML 身份验证
有关详细的 SAML 配置步骤,请参阅 AUTOTITLE。
启用 SAML 后,在继续 SCIM 之前测试身份验证系统。 将任何 IdP 帐户分配给针对实例配置的 SAML 应用程序后,请验证是否能够成功执行 SSO 登录。
在 SAML 身份验证正常工作之前,请勿继续配置 SCIM。
启用 SCIM 预配
确认 SAML 身份验证正常工作后,可以启用 SCIM 进行自动化用户管理。 必须在 GitHub Enterprise Server 和你的标识提供商上都配置 SCIM。
有关启用 SCIM 的详细步骤,请参阅 AUTOTITLE。
测试 SCIM 配置功能
测试 SCIM 预配,以确保 SCIM 预配的用户正确链接到现有用户帐户。
对于已从 LDAP/SAML 迁移中拥有帐户的用户:
- 在你的 IdP 中将用户分配到 SCIM 应用程序 。
- 验证自动链接:检查 SCIM 是否自动链接到现有帐户:
- 用户保留相同的用户名和帐户数据
- 不会创建重复帐户
- SCIM 标识在企业设置和站点管理员界面中显示为已链接。 有关详细信息,请参阅“AUTOTITLE”。
- 查看审核日志:查找 和 事件,确认已成功链接到现有用户。
对于未曾出现在您实例中的新用户:
- 验证用户创建:检查该用户是否以正确的属性出现在 GitHub Enterprise Server 中。
- 测试身份验证:确认新用户可以通过 SAML 进行身份验证。
- 测试属性更新:更新 IdP 中的用户信息并确认更改同步。
- 测试撤销配置:删除用户访问并确认其已禁用。
向所有用户推出 SCIM
对于尚未通过 SCIM 预配的所有剩余用户:
-
在你的 IdP 中逐渐将用户分配到 GitHub Enterprise Server 应用程序。 - 监视链接过程:观察基于用户名匹配的成功自动链接。
- 跟踪进度:使用审核日志监视 事件以链接进度。
- 解决任何冲突:解决出现的用户名冲突或映射冲突问题。
4. 更新团队和组织成员身份
迁移后,如果以前使用 LDAP 组同步来控制团队成员身份,则可以将这些团队映射替换为 SCIM 组。 如果重用现有团队,则需要在链接 IdP 组之前删除所有团队成员。
有关详细信息,请参阅“AUTOTITLE”。