Skip to main content

从 SAML 迁移到 OIDC

如果使用 SAML 对 具有托管用户的企业 中的成员进行身份验证,则可以迁移到 OpenID Connect (OIDC),并受益于对 IdP 的条件访问策略的支持。

谁可以使用此功能?

Enterprise Managed Users 可用于 GitHub Enterprise Cloud 上的新企业帐户。 请参阅“关于 Enterprise Managed Users”。

Note

对 Enterprise Managed Users 的 OpenID Connect (OIDC) 和条件访问策略 (CAP) 支持仅适用于 Microsoft Entra ID(以前称为 Azure AD)。

关于将 具有托管用户的企业 从 SAML 迁移到 OIDC

如果 具有托管用户的企业 使用 SAML SSO 进行 Entra ID 身份验证,则可以迁移到 OIDC。 企业使用 OIDC SSO 时,GitHub 将自动使用 IdP 的条件访问策略 (CAP) IP 条件来验证与 GitHub 的交互,当成员使用 Web UI 或更改 IP 地址时,以及每次使用 personal access token 或与用户帐户关联的 SSH 密钥时都会验证。

Note

对 Web 会话的 CAP 保护目前为 公共预览版,可能会更改。

在 2024 年 11 月 5 日之后启用 IdP CAP 支持的新企业将默认启用对 Web 会话的保护。

已启用 IdP CAP 支持的现有企业可以从其企业的“身份验证安全性”设置中选择对 Web 会话的扩展保护。

从 SAML 迁移到 OIDC 时,托管用户帐户 和以前为 SAML 预配但未由 GitHub Enterprise Managed User (OIDC) 应用程序预配的组会将“(SAML)”追加到其显示名称。

如果你不熟悉 Enterprise Managed Users 并且尚未为企业配置身份验证,则无需迁移,并且可以立即设置 OIDC 单一登录。 有关详细信息,请参阅“为企业托管用户配置 OIDC”。

Warning

迁移到新的 IdP 或租户时,GitHub 团队和 IdP 组之间的连接将被删除,并且在迁移后不会恢复。 这将从团队中删除所有成员,并将团队与 IdP 断开连接,如果使用团队同步管理对 IdP 组织或许可证的访问权限,则可能会导致中断。 建议在迁移之前使用 REST API 的“外部组”端点收集有关团队设置的信息,并在迁移之后恢复连接。 有关详细信息,请参阅“外部组的 REST API 终结点”。

先决条件

  • 目前必须在 GitHub 上将企业配置为使用 SAML 进行身份验证,并使用 Entra ID 作为标识提供者 (IdP)。 有关详细信息,请参阅“为企业托管用户配置 SAML 单一登录”。

  • 需要访问 GitHub 上的企业和 Entra ID 上的租户。

    • 要在 Entra ID 上配置 GitHub Enterprise Managed User (OIDC) 应用程序,必须以具有全局管理员角色的用户身份登录到 Entra ID 租户。
    • 若要以企业在 GitHub 上的设置用户身份登录,必须使用企业的恢复代码。 有关详细信息,请参阅“下载企业帐户的单一登录恢复代码”。
  • 在用户未主动使用企业资源时计划迁移时间。 在迁移期间,只有将新应用程序和用户配置为重新预配后,用户才能访问你的企业。

迁移企业

要将企业从 SAML 迁移到 OIDC,需要在 Entra ID 上禁用现有的 GitHub Enterprise Managed User 应用程序,准备迁移并以企业在 GitHub 上的设置用户身份开始迁移,然后在 Entra ID 上安装并配置新的 OIDC 应用程序。 迁移完成且 Entra ID 预配用户后,用户便可使用 OIDC 进行身份验证,从而访问 GitHub 上的企业资源。

Warning

将企业从 SAML 迁移到 OIDC 最多可能需要一小时。 在迁移期间,用户无法在 GitHub 上访问你的企业。

  1. 在开始迁移之前,请登录到 Azure,并在现有 GitHub Enterprise Managed User 应用程序中禁用预配。

  2. 如果在 Entra ID 中使用条件访问 (CA) 网络位置策略,并且当前将 IP 允许列表与企业帐户或企业帐户拥有的任何组织一起使用,则禁用 IP 允许列表。 有关详细信息,请参阅“为企业中的安全设置实施策略”和“管理组织允许的 IP 地址”。

  3. 使用用户名 SHORT-CODE_admin 登录为企业的设置用户,需将 SHORT-CODE 替换为企业的短代码****。

  4. 在 GitHub 的右上角,单击你的个人资料照片。

  5. 根据环境,单击“你的企业”,或单击“你的企业”,然后单击要查看的企业********。 1. 在页面左侧的企业帐户边栏中,单击 设置”。 1. 当系统提示继续访问标识提供者时,请单击“使用恢复代码”,并使用企业恢复代码之一登录。

    注意:必须为企业而不是用户帐户使用恢复代码。 有关详细信息,请参阅“下载企业帐户的单一登录恢复代码”。

  6. 在“ 设置”下,单击“身份验证安全性” 。

  7. 在页面底部的“迁移到 OpenID Connect 单一登录”旁边,单击“使用 Azure 进行配置”。

  8. 阅读警告,然后单击“我了解,开始迁移到 OpenID Connect”****。

  9. 在 GitHub Enterprise Cloud 将你重定向到 IdP 后,登录,然后按照说明授予同意并安装 GitHub Enterprise Managed User (OIDC) 应用程序。 在 Entra ID 通过 OIDC 请求 GitHub Enterprise Managed Users 的权限后,启用“代表组织同意”,然后单击“接受”

    警告:**** 必须以具有全局管理员权限的用户身份登录到 Entra ID,才能同意安装 GitHub Enterprise Managed User (OIDC) 应用程序。

  10. 授予同意后,GitHub 上随即将打开新的浏览器窗口并为 具有托管用户的企业 显示一组新的恢复代码。 下载代码,然后单击“启用 OIDC 身份验证”****。

  11. 等待迁移完成,最长可能需要一小时。 若要检查迁移状态,请导航到企业的身份验证安全设置页。 如果“需要 SAML 身份验证”处于选中状态,则表示迁移仍在进行中。

    Warning

    在迁移期间,请勿从 Entra ID 上的应用程序中预配新用户。

  12. 在新选项卡或窗口中,以设置用户身份登录时,请使用 scim:enterprise 范围和 no expiration 创建 personal access token (classic),并将其复制到剪贴板。 有关创建新令牌的详细信息,请参阅“为企业托管用户配置 SCIM 预配”。

  13. 在 Microsoft Entra 管理中心的 GitHub Enterprise Managed User (OIDC) 应用程序的预配设置中,在“Tenant URL”下,键入你企业的租户 URL:

    • 对于 GitHub.comhttps://api.github.com/scim/v2/enterprises/YOUR_ENTERPRISE,将 YOUR_ENTERPRISE 替换为你的企业帐户的名称。 例如,如果企业帐户的 URL 为 https://github.com/enterprises/octo-corp,则企业帐户的名称为 octo-corp
    • 对于 GHE.comhttps://api.SUBDOMAIN.ghe.com/scim/v2/enterprises/SUBDOMAIN,其中 SUBDOMAIN 是你在 GHE.com 上的企业子域。
  14. 在“机密令牌”下,粘贴之前创建的带有 scim:enterprise 范围的 personal access token (classic)****。

  15. 要测试配置,请单击“测试连接”。

  16. 要保存更改,请在窗体顶部单击“保存”。

  17. 在 Microsoft Entra 管理中心中,将用户和组从旧 GitHub Enterprise Managed User 应用程序复制到新的 GitHub Enterprise Managed User (OIDC) 应用程序。

  18. 通过预配单个新用户来测试配置。

  19. 如果测试成功,请单击“开始预配”,开始为所有用户预配。