Skip to main content

关于使用 SAML 单点登录管理身份和访问

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

注意:如果您的企业使用 企业托管用户,则必须按照不同的过程来配置 SAML 单点登录。 更多信息请参阅“为企业托管用户配置 SAML 单点登录”。

关于 SAML SSO

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

Note: To use SAML single sign-on, your organization must use GitHub Enterprise Cloud. 有关如何免费试用 GitHub Enterprise Cloud 的详细信息,请参阅“设置 GitHub Enterprise Cloud 试用版”。

如果配置 SAML SSO, 组织的成员将继续登录到他们在 GitHub.com 上的个人帐户。 当成员访问组织内使用 SAML SSO 的非公共资源时,GitHub 会将该成员重定向到 IdP 进行身份验证。 身份验证成功后,IdP 将该成员重定向回 GitHub,然后成员可以访问组织的资源。

注意:即使没有有效的 SAML 会话,组织成员也可以对组织拥有的公共资源执行读取操作,例如查看、克隆和复刻。

组织所有者可以对单个组织强制实施 SAML SSO,企业所有者可以为企业帐户中的所有组织强制实施 SAML SSO。 更多信息请参阅“配置企业的 SAML 单点登录”。

注:外部协作者无需使用 IdP 进行身份验证即可访问实施 SAML SSO 的组织中的资源。 有关外部协作者的更多信息,请参阅“组织中的角色”。

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

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

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

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

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

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

组织成员还必须具有活动的 SAML 会话才可授权 OAuth 应用程序。 您可以联系 GitHub Support 选择退出此要求。 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 Federation Services (AD FS)
  • Azure Active Directory (Azure AD)
  • Okta
  • OneLogin
  • PingOne
  • Shibboleth

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

不能将此 SCIM 实现用于企业帐户或 具有托管用户的组织。 如果您的企业启用了 企业托管用户,则必须使用不同的 SCIM 实现。 否则,SCIM 在企业级别不可用。 更多信息请参阅“配置 企业托管用户 的 SCIM 预配”。

使用 SAML SSO 添加成员到组织

在启用 SAML SSO 后,可通过多种方式向组织添加新成员。 组织所有者可在 GitHub Enterprise Cloud 上或使用 API 手动邀请新成员。 更多信息请参阅“邀请用户加入组织”和“成员”。

要供应新用户而不使用组织所有者的邀请,您可以使用 URL https://github.com/orgs/ORGANIZATION/sso/sign_up,将 ORGANIZATION 替换为组织的名称。 例如,您可以配置 IdP,让能访问 IdP 的任何人都可单击 IdP 仪表板上的链接加入 GitHub 组织。

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

You can use team synchronization to automatically add and remove organization members to teams through an identity provider. For more information, see "Synchronizing a team with an identity provider group."

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

延伸阅读