关于使用 SAML SSO 进行身份验证
SAML 单一登录 (SSO) 为使用 GitHub Enterprise Cloud 的组织所有者和企业所有者提供了一种控制安全访问存储库、问题和拉取请求等组织资源的方法。 组织所有者可以邀请你在 GitHub 上的个人帐户加入其使用 SAML SSO 的组织,这样你可以对该组织做出贡献,并且保留你在 GitHub 上的现有身份和贡献。
如果你是 具有托管用户的企业 的成员,则将转而使用为你预配且由你的企业控制的新帐户。 有关详细信息,请参阅“GitHub 帐户类型”。
在试图访问使用 SAML SSO 的组织中的大多数资源时,GitHub 会将你重定向到组织的 SAML IdP 进行身份验证。 在 IdP 上成功验证您的帐户后,IdP 会将您重定向回到 GitHub,您可以在那里访问组织的资源。
以某些方式访问公共存储库时不需要 IdP 身份验证:
- 查看 GitHub 上的存储库概述页面和文件内容
- 复刻存储库
- 通过 Git 执行读取操作,例如克隆存储库
通过其他方式访问公共存储库(例如查看问题、拉取请求、项目和发布)时需要身份验证。
Note
外部协作者不需要进行 SAML 身份验证。 有关外部协作者的详细信息,请参阅“组织中的角色”。
如果您最近在浏览器中使用组织的 SAML IdP 进行过身份验证,则在访问使用 SAML SSO 的 GitHub 组织时会自动获得授权。 如果您最近没有在浏览器中使用组织的 SAML IdP 进行身份验证,则必须在 SAML IdP 进行身份验证后才可访问组织。
必须定期使用 SAML IdP 进行身份验证并获权访问 GitHub 上的组织资源。 此登录期的持续时间由 IdP 指定,一般为 24 小时。 此定期登录要求会限制访问的时长,您必须重新验证身份后才可继续访问。 可以在安全设置中查看和管理活动 SAML 会话。 有关详细信息,请参阅“查看和管理活动的 SAML 会话”。
关联的 SAML 标识
使用 IdP 帐户进行身份验证并返回到 GitHub 时,GitHub 会在组织或企业中记录你的 GitHub 个人帐户与你登录到的 SAML 标识之间的关联。 这个关联的标识用于验证你在该组织中的成员身份,并且根据你的组织或企业设置,还用于确定你所属的具体组织和团队。 每个 GitHub 帐户只能关联到每个组织的一个 SAML 标识。 同样地,每个 SAML 标识只能关联到一个组织中的一个 GitHub 帐户。
如果使用已关联到其他 GitHub 帐户的 SAML 标识登录,会收到一条错误消息,指示无法使用该 SAML 标识进行登录。 如果尝试使用新的 GitHub 帐户在组织内部工作,就可能会出现这种情况。 如果不想将该 SAML 标识与该 GitHub 帐户一起使用,则需要注销该 SAML 标识,然后重复 SAML 登录。 如果确实要将该 SAML 标识与 GitHub 帐户一起使用,需要要求管理员取消该 SAML 标识与旧帐户的关联,以便你可将其关联到新帐户。 根据组织或企业的设置,管理员可能需要在 SAML 提供商中重新分配你的标识。 有关详细信息,请参阅“查看和管理成员 SAML 对组织的访问权限”。
如果用于登录的 SAML 标识与当前关联到 GitHub 帐户的 SAML 标识不匹配,会收到一条警告,要求你重新关联帐户。 SAML 标识用于管理访问权限和团队成员身份,因此继续使用新的 SAML 标识可能会导致你无法再访问 GitHub 中的团队和组织。 只有当你知道将来应该使用这个新的 SAML 标识进行身份验证时,才继续操作。
使用 SAML SSO 授权personal access token和 SSH 密钥
要在命令行上使用 API 或 Git 访问使用 SAML SSO 的组织中受保护的内容,需要使用授权的 HTTPS personal access token或授权的 SSH 密钥。
如果你没有personal access token或 SSH 密钥,可以为命令行创建personal access token或生成新 SSH 密钥。 有关详细信息,请参阅“管理个人访问令牌”或“生成新的 SSH 密钥并将其添加到 ssh-agent”。
要对使用或实施 SAML SSO 的组织使用新的或现有的personal access token或 SSH 密钥,需要授权该令牌或授权 SSH 密钥用于 SAML SSO 组织。 有关详细信息,请参阅“授权用于 SAML 单点登录的个人访问令牌”或“授权用于 SAML 单点登录的 SSH 密钥”。
关于 OAuth apps、GitHub Apps 和 SAML SSO
每次授权 OAuth app 或 GitHub App 访问使用或实施 SAML SSO 的组织时,你都必须有一个活动的 SAML 会话。 可以通过在浏览器中导航到 https://github.com/orgs/ORGANIZATION-NAME/sso
来创建活动的 SAML 会话。
企业或组织所有者为组织启用或强制实施 SAML SSO 后,以及首次通过 SAML 进行身份验证后,必须对之前授权访问组织的任何 OAuth apps 或 GitHub Apps 进行重新授权。
若要查看已授权的 OAuth apps,请访问 OAuth apps 页面。 若要查看已授权的 GitHub Apps,请访问 GitHub Apps 页面。
有关详细信息,请参阅“SAML 和 GitHub 应用”。