Skip to main content

关于 Enterprise Managed Users

可以从身份提供商 (IdP) 的 GitHub 上集中管理企业成员的身份和访问权限。

关于 Enterprise Managed Users

使用 Enterprise Managed Users,可以从外部身份管理系统或 IdP 管理 GitHub.com 上的用户的生命周期和身份验证。 你可以向 IdP 上具有现有身份和组成员身份的用户提供对 GitHub Enterprise Cloud 的访问权限。 IdP 在 GitHub.com 上预配有权访问企业的新用户帐户。 可以通过 IdP 控制用户帐户的用户名、配置文件数据、团队成员身份和存储库访问权限。

在 IdP 上,你可以为每个 托管用户帐户 提供一个角色,例如成员、企业所有者或来宾协作者。 托管用户帐户 可以拥有企业内的组织,并且可以将其他 托管用户帐户 添加到组织和其中的团队。 有关详细信息,请参阅“企业中的角色”和“关于组织”。

企业使用 OIDC SSO 时,GitHub 将自动使用 IdP 的条件访问策略 (CAP) IP 条件来验证用户与 GitHub 的交互,当成员更改 IP 地址时,每次使用 personal access token 或 SSH 密钥时都会验证。 有关详细信息,请参阅“About support for your IdP's Conditional Access Policy”。

可以授予 托管用户帐户 访问权限以及参与企业内部存储库的能力,但 托管用户帐户 无法创建公共内容,也不能与其他用户、组织和企业协作处理 GitHub 的其余部分。 有关详细信息,请参阅“托管用户帐户 的功能和限制”。

企业的 托管用户帐户 的用户名及其个人资料信息(例如显示名称和电子邮件地址)通过 IdP 设置,用户无法自行更改。 有关详细信息,请参阅“用户名和个人资料信息”。

企业所有者可以在 GitHub 上审核所有 托管用户帐户 的操作。 有关详细信息,请参阅“企业的审核日志事件”。

若要使用 Enterprise Managed Users,需要启用了 Enterprise Managed Users 的单独企业帐户类型。 有关创建此帐户的详细信息,请参阅“Enterprise Managed Users 入门”。

注意:使用 GitHub Enterprise Cloud 进行标识和访问管理有多个选项,而 Enterprise Managed Users 并不是每个客户的最佳解决方案。 如需详细了解 Enterprise Managed Users 是否适合你的企业,请参阅“确定企业的最佳身份验证方法”和“托管用户帐户的功能和限制”。

关于身份验证和用户预配

使用 Enterprise Managed Users 时,IdP 会在 GitHub.com 上创建和更新用户帐户。 用户必须在 IdP 上进行身份验证,才能访问 GitHub.com 上的企业资源。 GitHub Enterprise Cloud 维护 IdP 上与用户帐户对应的外部身份的记录。

GitHub 合作伙伴身份管理系统的一些开发人员合作,提供“铺好道路”的 Enterprise Managed Users 集成。这些 IdP 主要使用 SAML 提供身份验证。 Microsoft Entra ID(以前称为 Azure AD)还提供 OIDC 身份验证选项。 IdP 应用程序使用跨域身份管理系统 (SCIM) 预配用户。

合作伙伴 IdPSAMLOIDCSCIM
Entra ID
Okta
PingFederate

其他 IdP 必须遵循 SAML 2.0 规范进行身份验证。 可以使用符合 GitHub 集成准则的 IdP 配置预配。 IdP 必须遵循 SCIM 2.0 规范,并与 GitHub 的 REST API 进行通信。 例如,IdP 可以是 GitHub 尚未测试的商业身份管理系统,也可以是公司构建的自定义身份系统。

注意:

  • 对使用 GitHub 的公共 SCIM 架构来预配用户的支持为私人 beta 版,可能会有变动。 若要请求访问 beta 版本,请通过 GitHub 的销售团队 联系帐户管理员。
  • 此操作允许你使用 SCIM 在GitHub Enterprise Cloud上预配企业的用户帐户。 此操作仅适用于Enterprise Managed Users。 如果不使用Enterprise Managed Users并且想要使用 SCIM 预配对组织的访问权限,请参阅“SCIM”。
  • GitHub 建议在与 IdP 和 GitHub.com 上的生产数据隔离的环境中测试预配。

有关身份验证和预配的详细信息,请参阅以下文章。

某些客户已报告成功使用合作伙伴 IdP 的应用程序进行身份验证,并结合不同的 IdP 进行预配。 例如,用于身份验证的 Okta 和用于预配的自定义 SCIM 解决方案组合,或用于身份验证的 Keycloak 和用于预配的 SailPoint 组合。 GitHub 尚未测试所有 IdP,并且不会将合作伙伴 IdP 与其他 IdP 组合进行测试。

有关使用 GitHub SCIM 架构的私有 beta 版从 IdP 预配用户的详细信息,请参阅“使用 REST API 通过 SCIM 预配用户”,并查阅 IdP 的文档、支持团队或其他资源。

配置初始身份验证和预配后,GitHub 不建议迁移到其他平台进行身份验证或预配。 如果需要将现有企业迁移到其他平台进行身份验证或预配,请联系 GitHub 的销售团队 上的客户经理。

Enterprise Managed Users 入门

必须先执行一系列配置步骤,开发人员才能将 GitHub Enterprise Cloud 与 Enterprise Managed Users 一起使用。

  1. 若要使用 Enterprise Managed Users,需要启用了 Enterprise Managed Users 的单独企业帐户类型。 若要试用 Enterprise Managed Users 或讨论从现有企业迁移的选项,请联系 GitHub 的销售团队

    GitHub 销售团队的联系人将与你合作创建新的 具有托管用户的企业。 你需要为将设置企业的用户提供电子邮件地址,以及一个短代码,该代码将用作企业成员用户名的后缀。 短代码必须是企业唯一的,长度为 3 ~ 8 个字符,由字母和数字组成,不包含特殊字符。 有关详细信息,请参阅“用户名和个人资料信息”。

  2. 创建企业后,你将收到来自 GitHub 的电子邮件,邀请你为企业的设置用户选择密码,该用户将是企业的第一个所有者。 设置密码并为用户保存恢复代码时,请使用无痕或隐私浏览窗口。 设置用户仅用于为企业配置单一登录和 SCIM 预配集成。 配置 SSO 后,将不再允许访问企业或组织设置,除非使用了 SSO 恢复代码。

    设置用户的用户名是后缀为 _admin 的企业短代码,例如 fabrikam_admin。 如果需要稍后以设置用户身份登录,可以在任何登录页中输入用户名和密码。 为了方便起见,SSO 页上还提供了登录页的链接。

    如果需要重置设置用户的密码,请通过 GitHub 支持门户 联系 GitHub 支持。

  3. 你以设置用户身份登录后,我们建议你启用双因素身份验证。 设置用户的密码和双因素凭证也可用于进入 sudo 模式,这是采取敏感操作所必需的。 有关详细信息,请参阅“配置双重身份验证”和“Sudo 模式”。

  4. 首先,请配置 成员如何进行身份验证。 如果使用 Entra ID 作为 IdP,可以在 OpenID Connect (OIDC) 和安全断言标记语言 (SAML) 之间进行选择。 建议使用 OIDC,其中包括对条件访问策略 (CAP) 的支持。 如果需要从一个租户预配具有 托管用户帐户 的多个企业,则必须在第一个之后为每个企业使用 SAML。 如果你使用的是其他 IdP(例如 Okta 或 PingFederate),则可以使用 SAML 对成员进行身份验证。

    首先,请阅读所选身份验证方法的指南。

  5. 配置 SSO 后,可以配置 SCIM 预配。 SCIM 是 IdP 在 GitHub.com 上创建 托管用户帐户 的方式。 有关配置 SCIM 预配的详细信息,请参阅“为 Enterprise Managed User 配置 SCIM 预配”。

  6. 配置身份验证和预配后,可以通过将 IdP 组与团队同步来开始管理 托管用户帐户 的组织成员身份。 有关详细信息,请参阅“使用标识提供者组管理团队成员身份”。

如果企业成员必须使用一个工作站同时从 托管用户帐户 和个人帐户参与 GitHub.com 上的存储库,则可以提供支持。 有关详细信息,请参阅“支持在 GitHub.com 上具有多个用户帐户的开发人员”。

关于组织成员身份管理

可手动管理组织成员身份,也可使用 IdP 组自动更新成员身份。 要通过 IdP 管理组织成员身份,必须将成员添加到 IdP 组,并且 IdP 组必须连接到组织内的团队。 有关自动管理组织和团队成员身份的详细信息,请参阅“使用标识提供者组管理团队成员身份”。

将成员添加到企业拥有的组织的方式(通过 IdP 组或手动)决定了必须如何从组织中删除他们。

  • 如果将成员手动添加到组织,则必须手动将其删除。 从 IdP 上的 GitHub Enterprise Managed User 应用程序中取消分配他们,将暂停用户,但不会将其从组织中删除。
  • 如果用户由于被添加到映射到组织中的一个或多个团队的 IdP 组而成为该组织的成员,则从与组织关联的所有映射的 IdP 组中删除这些用户会将其从组织中删除。

要了解成员是如何添加到组织中的,可以按类型筛选成员列表。 有关详细信息,请参阅“查看企业中的人员”。

使用 托管用户帐户 进行身份验证

托管用户帐户 必须通过你的 IdP 进行身份验证。 托管用户帐户 进行身份验证的方式取决于你配置 SAML 还是 OIDC 身份验证。

如果企业配置了 SAML 身份验证,则 托管用户帐户 可以通过访问其 IdP 应用程序门户来访问你的企业。 如果企业配置了 OIDC 身份验证,则 托管用户帐户 可以使用 GitHub.com 上的登录页访问你的企业。 OIDC 目前不支持 IdP 发起的身份验证。 在任一配置中,托管用户帐户 都可以直接从 GitHub.com 上的组织或企业页面中发起身份验证。

默认情况下,当未经身份验证的用户尝试访问使用 Enterprise Managed Users 的企业时,GitHub 会显示 404 错误。 企业所有者可以选择性地启用自动重定向到单一登录 (SSO),而不会显示 404。 有关详细信息,请参阅“为企业中的安全设置实施策略”。

如果 SAML 配置错误或标识提供者 (IdP) 问题阻止你使用 SAML SSO,你可以使用恢复代码访问你的企业。 有关详细信息,请参阅“管理企业的恢复代码”。

通过 GitHub.com

作为 托管用户帐户 进行身份验证

  1. 导航到 https://github.com/login
  2. 在“用户名或电子邮件地址”文本框中,输入用户名,包括下划线和短代码。 表单识别用户名后将更新。 无需在此表单中输入密码。
  3. 要继续访问 IdP,请单击“使用身份提供程序登录”****。

用户名和个人资料信息

GitHub Enterprise Cloud 通过规范 IdP 提供的标识符自动为每个用户创建用户名。 有关详细信息,请参阅“外部身份验证的用户名注意事项”。

IdP 提供了 托管用户帐户 的个人资料名称和电子邮件地址。 托管用户帐户 无法更改 GitHub 上的个人资料名称或电子邮件地址,并且 IdP 仅可提供单个电子邮件地址。 如果更改与 IdP 中用户关联的电子邮件地址,则会从与用户旧电子邮件地址关联的参与历史记录,取消链接用户。

如果在规范化期间删除 IdP 提供的标识符的唯一部分,则预配用户时可能会发生冲突。 如果由于用户名冲突而无法预配用户,则应修改 IdP 提供的用户名。 有关详细信息,请参阅“外部身份验证的用户名注意事项”。

注意:由于 GitHub 在创建每个用户名时向 IdP 提供的规范化标识符添加下划线和短代码,因此冲突只会在每个 具有托管用户的企业 内发生。 托管用户帐户 可以与企业外部 GitHub.com 上的其他用户帐户共享 IdP 标识符或电子邮件地址。

支持在 GitHub.com 上具有多个用户帐户的开发人员

团队中的人员可能需要在 GitHub.com 上参与 具有托管用户的企业 外部的资源。 例如,你可能希望为公司的开放源代码项目维护单独的企业。 由于 托管用户帐户 无法参与公共资源,因此用户需要为此工作维护单独的个人帐户。

必须使用一个工作站在 GitHub.com 上从两个用户帐户进行参与的人员可以配置 Git 以简化该过程。 有关详细信息,请参阅“管理多个帐户”。

如果团队中有人员需要定期在 GitHub.com 上的帐户之间切换,例如其个人帐户和一个或多个 托管用户帐户,其可以登录多个帐户并在各帐户之间快速切换,而无需总是重新进行身份验证。 有关详细信息,请参阅“在帐户之间切换”。