Skip to main content

此版本的 GitHub Enterprise 将停止服务 2023-01-18. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

为企业配置 SAML 单点登录

你可以通过配置通过身份提供商 (IdP) 的 SAML 单一登录 (SSO),控制和保护对your GitHub Enterprise Server instance的访问。

Who can use this feature

Site administrators can configure SAML SSO for a GitHub Enterprise Server instance.

关于 SAML SSO

SAML SSO 允许你从 SAML IdP 集中控制和安全访问 your GitHub Enterprise Server instance。 当未经身份验证的用户在浏览器中访问 your GitHub Enterprise Server instance 时,GitHub Enterprise Server 会将用户重定向到你的 SAML IdP 进行身份验证。 在用户使用 IdP 上的帐户成功进行身份验证后,IdP 会将用户重定向回 your GitHub Enterprise Server instance。 GitHub Enterprise Server 将验证 IdP 的响应,然后授予用户访问权限。

当用户在 IdP 上成功进行身份验证后,用户对 your GitHub Enterprise Server instance 的 SAML 会话将在浏览器中激活 24 小时。 24 小时后,用户必须再次使用您的 IdP 进行身份验证。

如果将某个用户从 IdP 中移除,还必须手动挂起他们。 否则,帐户的所有者可以继续使用访问令牌或 SSH 密钥进行身份验证。 有关详细信息,请参阅“挂起和取消挂起用户”。

支持的身份提供程序

GitHub Enterprise Server 支持 SAML SSO 与采用 SAML 2.0 标准的 IdP 一起使用。 有关详细信息,请参阅 OASIS 网站上的 SAML Wiki

GitHub 官方支持和内部测试以下 IdP。

  • Active Directory 联合身份验证服务 (AD FS)
  • Azure Active Directory (Azure AD)
  • Okta
  • OneLogin
  • PingOne
  • Shibboleth

配置 SAML SSO

可以为 your GitHub Enterprise Server instance 启用或禁用 SAML 身份验证,也可以编辑现有配置。 可以在管理控制台中查看和编辑 GitHub Enterprise Server 的身份验证设置。 有关详细信息,请参阅“访问管理控制台”。

注意:GitHub strongly recommends that you verify any new configuration for authentication in a staging environment. An incorrect configuration could result in downtime for your GitHub Enterprise Server instance. For more information, see "Setting up a staging instance."

  1. 从 GitHub Enterprise Server 上的管理帐户任意页面的右上角,单击

    用于访问站点管理员设置的火箭图标的屏幕截图

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

    “站点管理员”链接的屏幕截图 1. 在左侧边栏中,单击“管理控制台”。 左侧边栏中的 管理控制台 选项卡 1. 在左侧边栏中,单击“身份验证”。 设置侧边栏中的“身份验证”选项卡

  3. 选择“SAML”。

    在管理控制台中启用 SAML 身份验证的选项的屏幕截图

  4. (可选)若要允许外部身份验证系统上没有帐户的人员使用内置身份验证登录,请选择“允许内置身份验证”。 有关详细信息,请参阅“允许对提供者外部的用户使用内置身份验证”。

    在 SAML IdP 外部启用内置身份验证的选项的屏幕截图

  5. (可选)若要启用未经请求的响应 SSO,请选择“IdP 发起的 SSO”。 默认情况下,GitHub Enterprise Server 将对未经请求的标识提供者 (IdP) 发起的请求进行回复,并向 IdP 返回一个 AuthnRequest

    启用 IdP 发起的未经请求响应的选项的屏幕截图

    注意:建议将此值保持未选中状态。 应仅在罕见情况下才启用此功能,即 SAML 实现不支持服务提供程序发起的 SSO,并且 GitHub Enterprise 支持 建议执行此操作。

  6. 如果你不希望 SAML 提供程序为 your GitHub Enterprise Server instance 上的用户确定管理员权限,请选择“禁用管理员降级/升级” 。

    用于启用选项以遵从 IdP 的“管理员”属性,从而启用或禁用管理权限的选项的屏幕截图

  7. 在“单一登录 URL”字段中,输入 IdP 上用于单一登录请求的 HTTP 或 HTTPS 终结点。 此值由您的 IdP 配置提供。 如果主机只能在内部网络中使用,则可能需要配置 your GitHub Enterprise Server instance 以使用内部名称服务器

    单一登录 URL 的文本字段的屏幕截图

  8. (可选)在“颁发者”字段中,键入 SAML 颁发者的名称。 这将验证发送到 your GitHub Enterprise Server instance 的消息的真实性。

    SAML 颁发者 URL 的文本字段的屏幕截图

  9. 在“签名方法”和“摘要方法”下拉菜单中,选择 SAML 颁发者用来验证来自 your GitHub Enterprise Server instance 的请求完整性的哈希算法 。 使用“名称标识符格式”下拉菜单指定格式。

    用于选择签名和摘要方法的下拉菜单的屏幕截图

  10. 在“验证证书”下,单击“选择文件”并选择一个证书以验证来自 IdP 的 SAML 响应 。

    用于从 IdP 上传验证证书的按钮的屏幕截图

  11. 如果需要,请修改 SAML 属性名称以匹配您的 IdP,或者接受默认名称。

    用于输入其他 SAML 属性的字段的屏幕截图

延伸阅读