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