注意
若要使用 SAML 单一登录,你的组织必须使用 GitHub Enterprise Cloud。 有关如何免费试用 GitHub Enterprise Cloud 的详细信息,请参阅“设置试用版 GitHub Enterprise Cloud”。
关于 SAML SSO
单一登录 (SSO) 使组织所有者和企业所有者能够控制和保护对组织资源(如仓库、议题和拉取请求)的访问。
如果您配置了 SAML 单点登录(SSO),贵组织的成员将继续登录到 GitHub.com 上的个人账户。 当成员访问贵组织内的大多数资源时,GitHub 会将其重定向到 IdP 进行身份验证。 身份验证成功后,IdP 会将成员重定向回 GitHub。 有关详细信息,请参阅“关于使用单一登录进行身份验证”。
注意
对于 GitHub,SAML 单点登录不会取代常规登录流程。 除非您使用 Enterprise Managed Users,否则成员将继续在 GitHub.com 上登录其个人账户,并且每个个人账户都将关联到您 IdP 中的一个外部身份。
以某些方式访问公共存储库时不需要 IdP 身份验证:
- 查看 GitHub 上的存储库概述页面和文件内容
- 复刻存储库
- 通过 Git 执行读取操作,例如克隆存储库
通过其他方式访问公共存储库(例如查看问题、拉取请求、项目和发布)时需要身份验证。
注意
外部协作者不需要进行 SSO 身份验证。 有关外部协作者的详细信息,请参阅“组织中的角色”。
组织所有者可以对单个组织强制实施 SAML SSO,企业所有者可以为企业帐户中的所有组织强制实施 SAML SSO。 有关详细信息,请参阅 标识和访问管理基础知识 和 为企业配置 SAML 单点登录。
在为您的组织启用 SAML SSO 之前,您需要将 IdP 连接到组织。 有关详细信息,请参阅“将身份提供程序连接到组织”。
对于组织,SAML SSO 可以禁用、启用但不强制执行,或者启用并强制执行。 为组织启用 SAML SSO 并且组织成员使用 IdP 成功完成身份验证后,您可以实施 SAML SSO 配置。 有关为 GitHub 组织强制实施 SAML SSO 的详细信息,请参阅 为您的组织强制执行 SAML 单点登录。
成员必须定期使用您的 IdP 进行身份验证,以获得对组织资源的访问权限。 此登录期的持续时间由 IdP 指定,一般为 24 小时。 此定期登录要求会限制访问的时长,您必须重新验证身份后才可继续访问。
若要在命令行上使用 API 和 Git 访问组织的受保护资源,成员必须使用或 SSH 密钥授权 personal access token 和进行身份验证。 有关详细信息,请参阅 授权个人访问令牌以与单点登录一起使用 和 将 SSH 密钥授权用于单点登录。
成员首次使用 SAML SSO 访问你的组织时,GitHub 会自动创建一条记录,用于关联你的组织、成员在 GitHub 上的帐户以及成员在你的 IdP 上的帐户。 您可以查看和撤销组织或企业帐户成员的关联 SAML 身份、活动会话以及授权凭据。 有关详细信息,请参阅 查看和管理成员通过 SAML 对组织的访问权限 和 查看和管理用户对企业的 SAML 访问。
如果成员在创建新的仓库时使用 SAML SSO 会话登录,则该仓库的默认可见性为私密。 否则,默认可见性为公开。 有关存储库可见性的详细信息,请参阅“关于仓库”。
组织成员还必须拥有活动的 SAML 会话才能为 OAuth app 授权。 您可以联系 通过网站管理员GitHub支持门户,选择不受此要求约束。 GitHub 不建议选择退出此要求,这将使组织面临更高的帐户接管风险和潜在的数据丢失风险。
GitHub 不支持 SAML 单一退出登录。 要终止活动的 SAML 会话,用户应该直接在 SAML IdP 上注销。
支持的 SAML 服务
GitHub 支持 SAML SSO 与采用 SAML 2.0 标准的 IdP 一起使用。 有关详细信息,请参阅 OASIS 网站上的 SAML Wiki。
GitHub 官方支持并内部测试以下用于 SAML 的 IdP。
- Microsoft Active Directory 联合身份验证服务 (AD FS)
- Microsoft Entra ID(以前称为 Azure AD)
- Okta
- OneLogin
- PingOne
- Shibboleth
部分 IdP 支持通过 SCIM 为 GitHub 组织预配访问权限。 有关详细信息,请参阅“关于组织的 SCIM”。
不能将此 SCIM 的实现用于企业帐户或 .具有托管用户的组织 如果企业已启用 Enterprise Managed Users,则必须使用不同的 SCIM 实现。 否则,SCIM 在企业级别不可用。 有关详细信息,请参阅“为企业托管用户配置 SCIM 预配”。
使用 SAML SSO 添加成员到组织
启用 SAML SSO 后,可以通过多种方式向组织添加新成员。 组织所有者可以在 GitHub 上手动邀请新成员,也可以使用 API。 有关详细信息,请参阅 Inviting users to join your organization(邀请用户加入你的组织) 和 适用于组织的 REST API 终结点。
若要在没有组织所有者邀请的情况下预配新用户,可使用 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 的详细信息,请参阅“关于企业 IAM 的 SAML”。
如果 IdP 支持 SCIM, GitHub 可以在向 IdP 授予访问权限时自动邀请成员加入组织。 如果在 SAML IdP 上删除成员对组织 GitHub 的访问权限,该成员将自动从 GitHub 组织中删除。 有关详细信息,请参阅“关于组织的 SCIM”。
你的组织可以使用团队同步功能,通过标识提供者自动向团队添加和删除组织成员。 有关详细信息,请参阅将团队与标识提供者组同步。
如果组织超过 100,000 个成员,某些 UI 体验和 API 功能可能会降级。