Skip to main content

为企业托管用户配置 SAML 单一登录

可以通过配置安全断言标记语言 (SAML) 单一登录 (SSO),自动管理对位于 GitHub 的企业帐户的访问。

谁可以使用此功能?

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

          按照本文中的步骤操作**之前**,请确保你的企业使用**托管用户**,并且你以设置用户身份登录,其用户名为企业短代码后缀 `_admin`。 你可通过检查企业视图的屏幕顶部是否有“Viewing as SHORTCODE_admin”标题栏,来确认自己是否使用了正确的用户登录。 如果看到此信息,说明你已成功使用正确的用户登录,可以按照本文中的步骤进行操作。 有关设置用户的详细信息,请参阅“[AUTOTITLE](/admin/managing-iam/understanding-iam-for-enterprises/getting-started-with-enterprise-managed-users)”。

如果企业使用个人帐户,则必须遵循不同的过程配置 SAML 单一登录。 请参阅“为企业配置 SAML 单点登录”。

关于 Enterprise Managed Users 的 SAML SSO

使用 Enterprise Managed Users 时,对企业位于 GitHub.com 或 GHE.com 上的资源的访问必须通过你的标识提供程序 (IdP) 进行身份验证。 企业成员将通过 IdP 登录,而不是使用 GitHub 用户名和密码登录。

配置 SAML SSO 后,我们建议存储恢复代码,以便在 IdP 不可用时恢复对企业的访问权限。

如果目前使用 SAML SSO 进行身份验证,并且更希望使用 OIDC 并受益于 CAP 支持,则可以遵循迁移路径。 有关详细信息,请参阅“从 SAML 迁移到 OIDC”。

先决条件

  • 了解对 IdP 的集成要求和支持级别。

    •           如果你使用**合作伙伴 IdP** 进行身份验证和预配,GitHub 会提供“铺平路径”集成和全面支持。
      
    • 也可以使用符合 SAML 2.0 和 SCIM 2.0 的任何系统或系统组合。 但是,对于此类系统的问题排查的支持可能较为有限。

    有关详细信息,请参阅“关于 Enterprise Managed Users”。

  • IdP 必须遵循 SAML 2.0 规范。 请参阅 OASIS 网站上的 SAML Wiki

  • 您必须对您的 IdP 具有租户管理员访问权限。

  • 如果要为新企业配置 SAML SSO,请确保完成初始配置过程中的所有先前步骤。 请参阅“Enterprise Managed Users 入门”。

配置 SAML SSO 为 Enterprise Managed Users

若要为您的 具有托管用户的企业 配置 SAML SSO,您必须先在 IdP 上配置一个应用程序,然后在 GitHub 上配置您的企业。 配置 SAML SSO 后,可以配置用户预配。

  1.        [配置 IdP](#configure-your-idp)
    
  2.        [配置您的企业](#configure-your-enterprise)
    
  3.        [启用预配](#enable-provisioning)
    

配置 IdP

  1. 如果使用合作伙伴 IdP,若要安装 GitHub Enterprise Managed User 应用程序,请单击与 IdP 和环境相对应的链接。

    身份提供商应用 GitHub.comGHE.com 应用
    Microsoft Entra IDGitHub Enterprise Managed UserGitHub Enterprise Managed User
    OktaGitHub Enterprise Managed User
           [
           GitHub Enterprise Managed User - ghe.com](https://www.okta.com/integrations/github-enterprise-managed-user-ghe-com/) |
    

    | PingFederate | PingFederate 下载网站 (导航到 “加载项 ”选项卡,然后选择 GitHub EMU 连接器 1.0) | PingFederate 下载网站 (导航到 “加载项 ”选项卡,然后选择 GitHub EMU 连接器 1.0) |

  2. 若要为 Enterprise Managed Users 在合作伙伴 IdP 上配置 SAML SSO,请阅读与你的 IdP 和环境相关的文档。

    身份提供商GitHub.com 文档GHE.com 文档
    Microsoft Entra ID
           [Microsoft Learn](https://docs.microsoft.com/en-us/azure/active-directory/saas-apps/github-enterprise-managed-user-tutorial) | 
           [Microsoft Learn](https://learn.microsoft.com/en-us/entra/identity/saas-apps/github-enterprise-managed-user-ghe-com-tutorial) |
    

    | Okta | 使用 Okta 为企业托管用户配置 SAML 单一登录 | 使用 Okta 为企业托管用户配置 SAML 单一登录 | | PingFederate | 使用 PingFederate 配置身份验证和预配(“先决条件”和“1.”) 配置 SAML”部分) | 使用 PingFederate 配置身份验证和预配(“先决条件”和“1.”) 配置 SAML”部分) |

    或者,如果不使用合作伙伴 IdP,可以使用 SAML 配置引用在 GitHub IdP 上创建和配置通用 SAML 2.0 应用程序。 请参阅“SAML 配置参考”。

  3. 若要测试和配置企业,请将你自己或将在 GitHub 上为你的企业配置 SAML SSO 的用户,分配到你为 Enterprise Managed Users 在 IdP 上配置的应用程序中。

    注意

    为了在配置时测试成功的身份验证连接,必须至少为 IdP 分配一个用户。

  4. 若要继续在 GitHub 上配置您的企业,请在 IdP 上安装的应用程序中找到并记下以下信息。

    其他名称说明
    IdP 登录 URL登录 URL、IdP URLIdP 上的应用程序的 URL
    IdP 标识符 URL颁发者用于 SAML 身份验证的服务提供商的 IdP 标识符
    签名证书,PEM 编码公共证书IdP 用于签名身份验证请求的公共证书

配置您的企业

在 IdP 上为 Enterprise Managed Users 配置 SAML SSO 后,可以在 GitHub 上配置企业。

在 SAML SSO 的初始配置后,现有 SAML 配置中唯一可以更新的设置是 SAML 证书,具有企业所有者角色的任何成员均可执行此操作。 如果需要更新登录 URL 或颁发者 URL,必须首先禁用 SAML SSO,然后使用新设置重新配置 SAML SSO。 有关详细信息,请参阅“为企业托管用户禁用身份验证”。

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

    注意

    如果需要重置设置用户的密码,请通过 GitHub 支持门户 联系 GitHub 支持。 提供电子邮件地址时,通常的密码重置选项将不起作用。

  2. 如果在启用 SAML 之前使用非合作伙伴 IdP(Okta、PingFederate 或 Entra ID 以外的 IdP),必须更新设置,以便能够使用 REST API 设置 SCIM。**** 请参阅“配置 SCIM 预配 (适用于企业托管用户)”。

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

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

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

  6. 在“SAML 单点登录”下,选择“添加 SAML 配置”****。

  7. 在“登录 URL”**** 下,键入在配置 IdP 时记下的用于 SSO 请求的 IdP 的 HTTPS 端点。

  8. 在“颁发者”字段下,输入您在配置 IdP 时记下的 SAML 颁发者 URL,以验证所发送消息的真实性。

  9. 在“公共证书”下,粘贴在配置 IdP 时记下的证书以验证 SAML 响应。

    注意

           GitHub 不强制执行此 SAML IdP 证书的过期。 也就是说,即使此证书过期,SAML 身份验证也继续有效。 但是, GitHub建议在证书过期之前更新证书。 我们将接受使用过期证书签名的 SAML 响应,但无法评论如何在标识提供者级别处理证书过期。 如果 IdP 管理员重新生成 SAML 证书,并且你未在 GitHub 端更新它,则由于证书不匹配,在 SAML 身份验证尝试期间,用户会遇到 `digest mismatch` 错误。 请参阅[错误:摘要不匹配](/admin/managing-iam/using-saml-for-enterprise-iam/troubleshooting-saml-authentication#error-digest-mismatch)。
    
  10. 在相同的“公共证书”部分中,选择“签名方法”和“摘要方法”下拉菜单,然后单击您的SAML颁发者所使用的哈希算法。

  11. 在为企业启用 SAML SSO 之前,单击“测试 SMAL 配置”,以确保已输入的信息正确。 此测试使用服务提供商发起(SP 发起的)身份验证,并且必须先成功,然后才能保存 SAML 设置。

  12. 单击“保存 SAML 设置” 。

    注意

    在为企业强制实施 SAML SSO 并保存 SAML 设置后,设置用户将继续有权访问该企业,并将保持登录 GitHub,同时你的 IdP 预配的托管用户帐户也将有权访问该企业。

  13. 若要确保身份提供程序将来不可用时仍可在 GitHub 上访问企业,请单击“下载”、“打印”或“复制”以保存恢复代码。 有关详细信息,请参阅“下载企业帐户的单一登录恢复代码”。

启用预配

启用 SAML SSO 后,启用预配。 有关详细信息,请参阅“配置 SCIM 预配 (适用于企业托管用户)”。

启用访客协作者

你可以使用来宾协作者的角色向企业中的供应商和承包商授予有限的访问权限。 与企业成员不同,来宾协作者只能访问其所属组织内部的存储库。

如果使用 Entra ID 或 Okta 进行 SAML 身份验证,可能需要更新 IdP 应用程序以使用来宾协作者。 有关详细信息,请参阅“启用来宾协作者”。