团队同步

已完成

如果你的公司使用 Microsoft Entra ID 或 Okta 作为标识提供者 (IdP),则可以通过团队同步管理 GitHub 团队成员身份。 启用后,团队同步会自动反映 GitHub 上的 IdP 组中的更改,从而减少了手动更新或自定义脚本的需求。 这种集中式方法简化了加入、权限管理和访问吊销。

功能 / 特点 说明
同步用户 使 GitHub Teams 与 IdP(例如 Active Directory)组成员身份保持一致
同步新团队 在创建时自动填充团队信息
自定义团队映射 使用 syncmap.yml 定义团队名单和组名称之间的自定义映射
动态配置 使用 settings 文件从目录结构派生同步设置

团队同步用例

团队同步非常适合希望简化 GitHub 组织内成员管理的企业。 管理员可以将 GitHub 团队映射到 IdP 组并自动管理成员身份。 这适用于:

  • 加入新员工
  • 当用户在团队之间流动时调整其访问权限
  • 删除离开组织的用户

⚠ 若要使用团队同步,IdP 管理员必须启用 SAML SSO 和 SCIM

企业托管用户和 GitHub Enterprise Server

团队同步也适用于使用 GitHub Enterprise Cloud 或 GitHub Enterprise Server (GHE.com) 的组织和企业帐户,在可用或因合规要求而必须使用的地区,该功能是首选解决方案。

企业托管用户(EMU) 是一项 GitHub Enterprise Cloud 功能,可让企业完全控制用户标识和帐户生命周期。 借助 EMU,GitHub 帐户完全由企业的标识提供者(IdP)管理。 这意味着用户不会手动注册 GitHub — 所有用户预配、访问和卸载都是通过Microsoft Entra ID 或 Okta 等工具自动完成的。

EMU 非常适合有严格合规性、审核或用户治理需求的组织。 它们有助于确保:

  • 所有帐户都归企业所有
  • 根据 IdP 成员身份自动授予或删除访问权限
  • 外部协作不会无意中发生

使用 EMU 时:

  • 托管用户无法将代码推送到企业外部的存储库或分支存储库
  • 他们只能与企业内的其他用户和资源进行交互

你可以使用 IdP 中的组来管理基于 EMU 的组织和团队成员身份,并且可以选择集成 团队同步 实现组到团队的自动映射。

对于对自承载或特定区域法规有要求的组织, GitHub Enterprise Server (GHE.com) 提供了一个本地解决方案,可让你保持对 GitHub 环境的完全控制。

有关详细信息,请参阅 GitHub Enterprise CloudAbout GitHub Enterprise Server 入门。

团队同步与 SCIM 的对比情况(针对 GHES)

在 GitHub Enterprise Server (GHES) 中,可以通过各种方法实现管理用户访问和团队成员身份,包括跨域身份管理系统 (SCIM) 的团队同步和系统。 了解这些方法对于有效管理至关重要。

GHES 中的团队同步

通过团队同步,可以链接 GitHub 团队与标识提供者 (IdP) 中的组。 此集成可确保 IdP 组中的任何更改(例如添加或删除成员)自动反映在相应的 GitHub 团队中。 此方法通过集中 IdP 中的用户访问控制来简化团队管理。

但是,请务必注意,团队同步不是用户预配服务,在大多数情况下不会邀请非成员加入组织。 因此,仅当用户已是组织成员时,才会成功将用户添加到团队。

请考虑以下方案,了解团队同步在实践中的工作原理:

  • 当 Azure AD 组“DevOps 工程师”映射到 GitHub 团队“DevOps”时
  • 将 Alice 添加到 IdP 组时→自动添加到 GitHub 团队
  • 当她离开组时→自动从团队中删除

注释

GHES 中的团队同步不会预配帐户。 用户必须是 GitHub 组织成员。

启用团队同步

  1. 在 IdP 中启用安全断言标记语言 (SAML) 单一登录 (SSO) 和 SCIM。
  2. 通过 GitHub UI 或 API 将 GitHub 团队映射到 IdP 组。
  3. 组成员身份更改会自动同步到 GitHub。

支持的 IDP:

  • Microsoft Entra ID:需要具有读取档案和目录访问的权限。
  • Okta:需要 SAML SSO、SCIM、租户 URL,以及具有只读管理员访问权限的 Web 系统单点登录 (SSWS) 令牌。

禁用团队同步

若要禁用,请:

  1. 导航到“设置”>“组织安全性”
  2. 点击“禁用团队同步”

用于禁用团队同步的组织设置的屏幕截图。

注释

如果通过 IdP 映射添加同步,则禁用同步会从团队中删除用户。

GHES 中的 SCIM

SCIM 是一种开放标准协议,旨在自动交换标识域和 IT 系统之间的用户标识信息。 在 GHES 上下文中,SCIM 使管理员可以直接通过 GitHub API 预配、更新和取消预配用户帐户。 这意味着可以创建、更新和删除用户帐户,以及同步组信息以映射 GitHub 团队成员身份。

SCIM 可用于大规模管理用户生命周期,确保用户数据在整个系统中保持一致。

请考虑以下方案以了解 SCIM 在实践中的工作原理:

  • Okta SCIM 集成自动预配 GitHub 用户
  • 已将 Bob 添加到 Okta → 预配 GitHub 帐户
  • Bob 更改角色 → 访问权限和团队更新
  • Bob 离开 → 取消预配帐户

关键优势:帐户生命周期管理的完全自动化。

团队同步与组 SCIM

GitHub 支持两种主要标识集成方法:

  • 团队同步:专注于将组成员身份同步到 GitHub 团队
  • 组 SCIM:专注于用户和组的完整生命周期管理

团队同步和组 SCIM 之间的差异

功能 / 特点 团队同步 组 SCIM
焦点 团队级映射 用户和组预配
设置 手动将组映射到团队 通过 IdP SCIM 配置自动执行
自动化级别 仅同步组成员身份 完整生命周期自动化
理想用例 GitHub 团队管理 具有高用户营业额的大型组织
取消预配 手动或依赖 IdP 组 全自动
标识模型 经典 托管用户

选择正确的方法

团队同步和组 SCIM 之间的选择取决于组织的需求、大小和现有标识管理基础结构:

用例 建议的解决方案
按团队管理存储库访问权限 团队同步
自动化用户生命周期 组 SCIM
需要基于 IdP 的完整治理 组 SCIM
GitHub 团队是工作流的核心 团队同步

使用限制

使用团队同步时,请留意以下限制:

  • 每个团队的最大成员数:5,000
  • 每个组织的最大成员数:10,000
  • 每个组织的最大团队数:1,500

超出这些限制可能会导致出现性能问题或同步失败。