关于你的 GitHub Enterprise Server 实例 上的 SAML SSO
SAML SSO 允许人员通过外部系统进行身份验证和访问 你的 GitHub Enterprise Server 实例,以便进行标识管理。
SAML 是一种基于 XML 的身份验证和授权标准。 为 你的 GitHub Enterprise Server 实例 配置 SAML 时,用于身份验证的外部系统称为标识提供者 (IdP)。 实例充当 SAML 服务提供程序 (SP)。 有关 SAML 标准的详细信息,请参阅 Wikipedia 上的安全断言标记语言。
注意:可以使用 SAML 或 LDAP,但不能同时使用两者。
使用 SAML 或 CAS 时,双重身份验证在 GitHub Enterprise Server 实例上不受支持或无法管理,但受外部身份验证提供商的支持。 在组织上无法实施双重身份验证。 有关对组织强制实施双因素身份验证的详细信息,请参阅“在你的组织中要求进行双因素身份验证”。
配置 SAML 后,使用 你的 GitHub Enterprise Server 实例 的用户必须使用personal access token 对 API 请求进行身份验证。 有关详细信息,请参阅“管理个人访问令牌”。
如果想要允许对某些在你的外部验证提供程序上无帐户的人员进行身份验证,可以允许对 你的 GitHub Enterprise Server 实例 上的本地帐户进行回退身份验证。 有关详细信息,请参阅“允许对提供程序覆盖范围之外的用户进行内置身份验证”。
有关 GitHub Actions 上 SAML SSO 配置的详细信息,请参阅“为企业配置 SAML 单点登录”。
关于创建用户帐户
默认情况下,当您分配或取消分配应用程序时,您的 IdP 不会自动与 GitHub Enterprise Server 通信。 GitHub Enterprise Server 上的资源的访问,使用 SAML 实时 (JIT 创建用户帐户 ,) 首次导航到 GitHub Enterprise Server 并通过通过 IdP 进行身份验证来登录。 当你授予 GitHub Enterprise Server 的访问权限时,你可能需要手动通知用户,并且在停用期间必须手动 停用 GitHub Enterprise Server 上的用户帐户。
或者,当你在 IdP 上分配或取消分配应用程序后,不使用 SAML JIT 预配,而是使用 SCIM 自动创建或暂停用户帐户和授予或拒绝对 你的 GitHub Enterprise Server 实例 的访问权限。SCIM for GitHub Enterprise Server 目前为专用 beta 版本,可能会更改。 有关详细信息,请参阅“在 GitHub Enterprise Server 上使用 SCIM 配置用户预配”。
使用 JIT 预配时,如果从 IdP 中删除用户,还必须在 你的 GitHub Enterprise Server 实例 上手动暂停该用户的帐户。 否则,帐户的所有者可以继续使用访问令牌或 SSH 密钥进行身份验证。 有关详细信息,请参阅“挂起和取消挂起用户”。
支持的 IdP
GitHub Enterprise Server 支持 SAML SSO 与采用 SAML 2.0 标准的 IdP 一起使用。 有关详细信息,请参阅 OASIS 网站上的 SAML Wiki。
GitHub 官方支持和内部测试以下 IdP。
- Microsoft Active Directory 联合身份验证服务 (AD FS)
- Microsoft Entra ID(以前称为 Azure AD)
- Okta
- OneLogin
- PingOne
- Shibboleth
如果 IdP 支持加密断言,则可以在 GitHub Enterprise Server 上配置加密断言,以提高身份验证过程中的安全性。
GitHub Enterprise Server 不支持 SAML 单次注销。 要终止活动的 SAML 会话,用户应该直接在 SAML IdP 上注销。
延伸阅读
- "将 SAML 用于企业 IAM"
- OASIS 网站上的 SAML Wiki
- IETF 网站上的跨域身份管理系统:协议 (RFC 7644)