Skip to main content

关于使用 SAML 单一登录进行的标识和访问管理

如果您使用身份提供程序 (IdP) 集中管理用户身份和应用程序,可以配置安全声明标记语言 (SAML) 单点登录 (SSO) 来保护组织在 GitHub 上的资源。

注意:若要使用 SAML 单一登录,你的组织必须使用 GitHub Enterprise Cloud。 有关如何免费试用 GitHub Enterprise Cloud 的详细信息,请参阅“设置 GitHub Enterprise Cloud 的试用版”。

关于 SAML SSO

SAML 单一登录 (SSO) 为使用 GitHub Enterprise Cloud 的组织所有者和企业所有者提供了一种控制安全访问存储库、问题和拉取请求等组织资源的方法。

如果配置了 SAML SSO,组织成员将继续在 GitHub.com 上登录到其个人帐户。 当成员访问组织内的大部分资源时,GitHub 会将成员重定向到你的 IdP 以进行身份验证。 身份验证成功后,IdP 将该成员重定向回 GitHub。 有关详细信息,请参阅“关于使用 SAML 单点登录进行身份验证”。

注意: SAML SSO 不会取代 GitHub 的正常登录过程。 除非使用 Enterprise Managed Users,否则成员将继续在 GitHub.com 上登录到其个人帐户,并且每个个人帐户都将链接到 IdP 中的外部标识。

以某些方式访问公共存储库时不需要 IdP 身份验证:

  • 查看 GitHub 上的存储库概述页面和文件内容
  • 复刻存储库
  • 通过 Git 执行读取操作,例如克隆存储库

通过其他方式访问公共存储库(例如查看问题、拉取请求、项目和发布)时需要身份验证。

注意: 外部协作者不需要进行 SAML 身份验证。 有关外部协作者的详细信息,请参阅“组织中的角色”。

组织所有者可以对单个组织强制实施 SAML SSO,企业所有者可以为企业帐户中的所有组织强制实施 SAML SSO。 有关详细信息,请参阅“About identity and access management”和“为企业配置 SAML 单点登录”。

在为您的组织启用 SAML SSO 之前,您需要将 IdP 连接到组织。 有关详细信息,请参阅“将身份提供程序连接到组织”。

对于组织,SAML SSO 可以禁用、启用但不实施或者启用并实施。 为组织启用 SAML SSO 并且组织成员使用 IdP 成功完成身份验证后,您可以实施 SAML SSO 配置。 有关为 GitHub 组织强制实施 SAML SSO 的更多信息,请参阅“实施组织的 SAML 单点登录”。

成员必须定期使用您的 IdP 进行身份验证,以获得对组织资源的访问权限。 此登录期的持续时间由 IdP 指定,一般为 24 小时。 此定期登录要求会限制访问的时长,您必须重新验证身份后才可继续访问。

要在命令行上使用 API 和 Git 访问组织受保护的资源,成员必须授权并使用personal access token或 SSH 密钥验证身份。 有关详细信息,请参阅“授权用于 SAML 单点登录的个人访问令牌”和“授权用于 SAML 单点登录的 SSH 密钥”。

成员第一次使用 SAML SSO 访问你的组织时,GitHub 会自动创建一条记录,以链接你的组织、成员在 GitHub.com 上的帐户以及成员在 IdP 上的帐户。 您可以查看和撤销组织成员或企业帐户关联的 SAML 身份、活动的会话以及授权的凭据。 有关详细信息,请参阅“查看和管理成员 SAML 对组织的访问权限”和“查看和管理用户对企业的 SAML 访问”。

如果成员在创建新的仓库时使用 SAML SSO 会话登录,则该仓库的默认可见性为私密。 否则,默认可见性为公开。 有关存储库可见性的详细信息,请参阅“关于仓库”。

组织成员还必须具有活动的 SAML 会话才可授权 OAuth app。 您可以联系 GitHub 支持 选择退出此要求。 GitHub Enterprise Cloud 不建议退出此要求,因为它会使您的组织面临更高的帐户接管风险和潜在的数据丢失风险。

GitHub Enterprise Cloud 不支持 SAML 单次注销。 要终止活动的 SAML 会话,用户应该直接在 SAML IdP 上注销。

支持的 SAML 服务

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

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

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

有些 IdP 支持配置通过 SCIM 访问 GitHub 组织。 有关详细信息,请参阅“关于组织的 SCIM”。

不能将此 SCIM 的实现与企业帐户或 具有托管用户的组织 一起使用。 如果为企业启用 Enterprise Managed Users,则必须使用不同的 SCIM 实现。 否则,SCIM 在企业级别不可用。 有关详细信息,请参阅“Configuring SCIM provisioning for Enterprise Managed Users”。

使用 SAML SSO 添加成员到组织

启用 SAML SSO 后,可以通过多种方式向组织添加新成员。 组织所有者可在 GitHub Enterprise Cloud 上或使用 API 手动邀请新成员。 有关详细信息,请参阅“Inviting users to join your organization(邀请用户加入你的组织)”和“组织”。

若要在没有组织所有者邀请的情况下预配新用户,可使用 URL https://github.com/orgs/ORGANIZATION/sso/sign_up,并将“ORGANIZATION”替换为你的组织名称。 例如,您可以配置 IdP,让能访问 IdP 的任何人都可单击 IdP 仪表板上的链接加入 GitHub 组织。

注意:只有在组织级别而不是企业帐户级别配置 SAML SSO 时,才支持通过 https://github.com/orgs/ORGANIZATION/sso/sign_up 预配新用户。 有关企业帐户 SAML SSO 的详细信息,请参阅“About SAML for enterprise IAM”。

如果您的 IdP 支持 SCIM,当您在 IdP 上授予访问权限时,GitHub 可以自动邀请成员加入您的组织。 如果您删除成员对 SAML IdP 上 GitHub 组织的访问权限,该成员将自动从 GitHub 组织删除。 有关详细信息,请参阅“关于组织的 SCIM”。

你的组织可以使用团队同步功能,通过标识提供者自动向团队添加和删除组织成员。 有关详细信息,请参阅 GitHub Enterprise Cloud 文档中的“将团队与标识提供者组同步”。

延伸阅读