注意
对 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 上的企业。
-
在开始迁移之前,请登录到Azure并在现有GitHub Enterprise Managed User应用程序中禁用预配。
-
如果在 Entra ID 中使用条件访问 (CA) 网络位置策略,并且当前将 IP 允许列表与企业帐户或企业帐户拥有的任何组织一起使用,则禁用 IP 允许列表。 请参阅“在企业中强制执行安全设置策略”和“管理组织允许的 IP 地址”。
-
使用用户名“SHORTCODE_admin”(将 SHORTCODE 替换为你企业的短代码)作为企业设置用户登录。****
-
导航到您的企业。 例如,从 GitHub.com 上的 公司 页面。
-
当系统提示继续访问标识提供者时,请单击“使用恢复代码”,并使用企业恢复代码之一登录。
注意
必须为企业而不是用户帐户使用恢复代码。 有关详细信息,请参阅“下载企业帐户的单一登录恢复代码”。
-
在页面顶部,单击 “身份提供商”。
-
在“Identity Provider”下,单击“Single sign-on configuration”********。
-
在页面底部,单击“Migrate to OpenID Connect single sign-on”****。
-
阅读警告,然后单击“Migrate to OIDC”****。
-
单击“Begin OIDC migration”****。
-
在 GitHub 将你重定向到 IdP 后,登录然后按照说明授予同意并安装 GitHub Enterprise Managed User (OIDC) 应用程序。 在 Entra ID 通过 OIDC 请求 GitHub Enterprise Managed Users 的权限后,启用“代表组织同意”,然后单击“接受”。
警告
必须以具有全局管理员权限的用户身份登录到 Entra ID,才能同意安装 GitHub Enterprise Managed User (OIDC) 应用程序。
-
授予同意后,GitHub 上随即将打开新的浏览器窗口并为 具有托管用户的企业 显示一组新的恢复代码。 下载代码,然后单击“启用 OIDC 身份验证”****。
-
等待迁移完成,最长可能需要一小时。 若要检查迁移状态,请导航到企业的身份验证安全设置页。 如果“需要 SAML 身份验证”处于选中状态,则表示迁移仍在进行中。
警告
在迁移期间,请勿从 Entra ID 上的应用程序中预配新用户。
-
在新的标签页或窗口中,以设置用户身份登录,创建一个具有 scim:enterprise 范围且无过期时间的 personal access token (classic),并将其复制到剪贴板。 有关创建新令牌的详细信息,请参阅“为企业托管用户配置 SCIM 预配”。
-
在 Microsoft Entra 管理中心的 GitHub Enterprise Managed User (OIDC) 应用程序的预配设置中,在“租户 URL”下,你的企业的租户 URL 为:
- 对于 GitHub.com:
https://api.github.com/scim/v2/enterprises/YOUR_ENTERPRISE将YOUR_ENTERPRISE替换为企业帐户的名称。 例如,如果企业帐户的 URL 为https://github.com/enterprises/octo-corp,则企业帐户的名称为octo-corp。 - 对于 GHE.com:
https://api.SUBDOMAIN.ghe.com/scim/v2/enterprises/SUBDOMAIN,其中 SUBDOMAIN 是贵企业在 GHE.com 上的子域名。
- 对于 GitHub.com:
-
在“机密令牌”下,粘贴之前创建的带有 scim:enterprise 范围的 personal access token (classic)。
-
要测试配置,请单击“测试连接”。
-
要保存更改,请在窗体顶部单击“保存”。
-
在Microsoft Entra 管理中心中,将用户和组从旧GitHub Enterprise Managed User应用程序复制到新GitHub Enterprise Managed User (OIDC)应用程序。
-
通过预配单个新用户来测试配置。
-
如果测试成功,请单击“开始预配”,开始为所有用户预配。