Skip to main content

从 SAML 迁移到 OIDC

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

谁可以使用此功能?

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

注意

对 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 条件,在成员使用 Web 界面、更改 IP 地址时,以及每次使用与用户帐户关联的 GitHub 或 SSH 密钥进行身份验证时,验证与 personal access token 的交互。

注意

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

如果你的企业已经启用了 IdP CAP 支持,你可以选择在企业的“身份验证安全”设置中启用对 Web 会话的扩展保护。 启用 Web 会话保护后,如果不满足用户的 IP 条件,他们可以查看和筛选所有用户拥有的资源,但无法查看通知、搜索、个人仪表板或收藏的仓库的结果详细信息。

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

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

警告

迁移到新的 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 上的企业资源。

警告

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

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

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

  3. 使用用户名“SHORTCODE_admin”(将 SHORTCODE 替换为你企业的短代码)作为企业设置用户登录。****

  4. 导航到您的企业。 例如,从 GitHub.com 上的 公司 页面。

  5. 当系统提示继续访问标识提供者时,请单击“使用恢复代码”,并使用企业恢复代码之一登录。

    注意

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

  6. 在页面顶部,单击“Identity provider”****。

  7. 在“Identity Provider”下,单击“Single sign-on configuration”********。

  8. 在页面底部,单击“Migrate to OpenID Connect single sign-on”****。

  9. 阅读警告,然后单击“Migrate to OIDC”****。

  10. 单击“Begin OIDC migration”****。

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

    警告

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

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

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

    警告

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

  14. 在新的标签页或窗口中,以设置用户身份登录,创建一个具有 scim:enterprise 范围且无过期时间的 personal access token (classic),并将其复制到剪贴板。 有关创建新令牌的详细信息,请参阅“配置 SCIM 预配 (适用于企业托管用户)”。

  15. 在 Microsoft Entra 管理中心的 GitHub Enterprise Managed User (OIDC) 应用程序的预配设置中,在“租户 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 上的企业子域。
  16. 在“机密令牌”下,粘贴你之前创建的具有 scim:enterprise 范围的 personal access token (classic)。

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

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

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

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

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