Skip to main content
我们经常发布文档更新,此页面的翻译可能仍在进行中。 有关最新信息,请访问英语文档

使用 SCIM 为企业配置用户预配

可以为 你的 GitHub Enterprise Server 实例 配置跨域标识管理系统 (SCIM),当将你的实例 的应用程序分配给标识提供者上的用户时,该系统会自动预配用户帐户。

谁可以使用此功能

Site administrators can configure user provisioning for a GitHub Enterprise Server instance.

注意:GitHub Enterprise Server 的 SCIM 目前为专用 beta 版本,可能会随时更改。 要访问 beta 版本,请通过 GitHub 的销售团队 联系帐户管理员。 请在 GitHub 社区讨论中提供反馈。

警告:beta 版本仅供测试和反馈,不提供支持。 GitHub 建议使用暂存实例进行测试。 有关详细信息,请参阅“设置暂存实例”。

关于 GitHub Enterprise Server 的用户预配

如果对 你的 GitHub Enterprise Server 实例 使用 SAML 单一登录 (SSO),可以配置 SCIM 以自动创建或暂停用户帐户,并且在 IdP 上分配或取消分配应用程序时,可向实例 的访问权限。 有关 SCIM 的详细信息,请参阅 IETF 网站上的跨域身份管理系统:协议 (RFC 7644)

如果不使用 SCIM 配置用户预配,则向用户分配或取消分配应用程序时,IdP 将不会自动与 GitHub Enterprise Server 通信。 如果没有 SCIM,GitHub Enterprise Server 会在有人第一次导航到 GitHub Enterprise Server 并通过 IdP 进行身份验证来登录时使用 SAML 实时 (JIT) 预配创建用户帐户。

配置预配使 IdP 能够在将 GitHub Enterprise Server 的应用程序分配或取消分配给 IdP 上的用户时与 你的 GitHub Enterprise Server 实例 通信。 当你在分配应用程序时,IdP 将提示 你的 GitHub Enterprise Server 实例 创建帐户并向用户发送一封登录电子邮件。 取消分配应用程序时,IdP 将与 GitHub Enterprise Server 通信以取消任何 SAML 会话并禁用成员的帐户。

要为企业配置预配,必须在 GitHub Enterprise Server 上启用预配,然后在 IdP 上安装和配置预配应用程序。

IdP 上的预配应用程序使用 SCIM API 与 GitHub Enterprise Server 通信。 有关详细信息,请参阅 REST API 文档中的“SCIM”。

关于标识和声明

在 IdP 管理员授予对 你的 GitHub Enterprise Server 实例 的访问权限后,用户可以通过 IdP 进行身份验证,以使用 SAML SSO 访问 GitHub Enterprise Server。

在身份验证期间,实例会尝试将用户与 SAML 标识相关联。 默认情况下,实例 会将 IdP 中的 NameID 声明与帐户的用户名进行比较。 为进行比较,GitHub Enterprise Server 会将 NameID 值规范化。 有关用户名规范化的详细信息,请参阅“外部身份验证的用户名注意事项”。

如果实例上没有具有匹配用户名的现有帐户,用户将无法登录。 若要进行此匹配,GitHub Enterprise Server 会将 IdP 中的 SAML NameId 声明与实例上 SCIM 预配的每个用户帐户的 username 声明进行比较。

在 SAML 身份验证期间,某些环境可能会使用除 NameID 以外的值作为唯一标识声明。 如果环境未使用 NameID 来标识用户,则站点管理员可以为实例配置自定义用户属性。 配置 SCIM 时,GitHub Enterprise Server 将遵循此映射。 GitHub Enterprise Server 3.6.5 或 3.7.2 及更高版本支持自定义映射。有关映射用户属性的详细信息,请参阅“为企业配置 SAML 单点登录”。

如果 GitHub Enterprise Server 成功标识 IdP 中的用户,但帐户详细信息(如电子邮件地址、名字或姓氏)不匹配,则实例会使用 IdP 中的值覆盖详细信息。 除 SCIM 预配的主电子邮件以外的任何电子邮件地址也将从用户帐户中删除。

支持的身份提供程序

在专用 beta 版本中,帐户团队将提供在支持的 IdP 上为 GitHub Enterprise Server 配置 SCIM 的文档。

先决条件

  • 您必须对 IdP 具有管理访问权限,才能配置应用程序进行 GitHub Enterprise Server 的用户预配。

为企业启用用户预配

若要对实例执行预配操作,你将创建内置用户帐户,并将帐户提升为企业所有者。

在 GitHub Enterprise Server 实例上启用 SCIM 后,所有用户帐户都会暂停。 内置用户帐户将继续执行预配操作。 在授予用户从 IdP 访问实例的权限后,IdP 将使用 SCIM 与实例通信,以取消暂停用户帐户。

  1. 创建内置用户帐户,对实例执行预配操作。 有关详细信息,请参阅“允许对提供程序覆盖范围之外的用户进行内置身份验证”。

  2. 将专用用户帐户提升至企业所有者。 有关详细信息,请参阅“邀请人员管理企业”。

  3. 以新企业所有者身份登录到实例。

  4. 在 admin:enterprise 范围内创建 personal access token。 请不要为 personal access token 指定到期日期。 有关详细信息,请参阅“Managing your personal access tokens”。

    警告:请确保不为 personal access token 指定到期日期。 如果指定过期日期,则 SCIM 在到期日期过后将不再有效。

    注意:测试 SCIM 配置和在 IdP 上为 SCIM 配置应用程序时需要此 personal access token。 将令牌安全地存储在密码管理器中,直到您稍后在这些说明中再次需要该令牌。

    1. 通过 SSH 连接到 你的 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 有关 SSH 访问权限的详细信息,请参阅“[AUTOTITLE](/admin/configuration/configuring-your-enterprise/accessing-the-administrative-shell-ssh)”。
    $ ssh -p 122 admin@HOSTNAME
  5. 若要启用 SCIM,请在 GitHub 的销售团队 上运行客户经理提供的命令。

  6. 等待配置运行完毕。

  7. 若要验证 SCIM 是否正常运行,请运行以下命令。 将步骤 3 中的 PAT实例的主机名替换为实际值。

    $ GHES_PAT="PAT FROM STEP 3"
    $ GHES_HOSTNAME="YOUR INSTANCE'S HOSTNAME"
    $ curl --location --request GET 'https://$GHES_HOSTNAME/api/v3/scim/v2/Users' \
        --header 'Content-Type: application/scim' \
        --header 'Authorization: Bearer $GHES_PAT'

    该命令应返回空数组。

  8. 在 IdP 上 GitHub Enterprise Server 的应用程序中配置用户预配。 若要请求受支持 IdP 的文档,请在 GitHub 的销售团队 上联系客户经理。 如果 IdP 不受支持,则必须手动创建应用程序并配置 SCIM。