SSO 概览

最近更新时间:2024-04-10 15:33:01

我的收藏
腾讯云支持基于 SAML 2.0和 OIDC 的 SSO(Single Sign On,单点登录),通过 IdP 身份验证的外部用户可直接访问您的腾讯云资源。腾讯云目前支持两种 SSO 登录方式:用户 SSO、角色 SSO。

SSO基本概念

概念
说明
身份提供商(IdP)
一个包含有关外部身份提供商元数据的实体,身份提供商可以提供身份管理服务。
企业本地 IdP:Microsoft Active Directory Federation Service (ADFS)、Shibboleth 等。
Cloud IdP:Azure AD、Google Workspace、Okta、OneLogin 等。
服务提供商(SP)
利用 IdP 的身份管理功能,为用户提供具体服务的应用,SP 会使用 IdP 提供的用户信息。一些非 SAML 协议的身份系统(例如:OpenID Connect),也把服务提供商称作 IdP 的信赖方。
安全断言标记语言(SAML 2.0)
实现企业级用户身份认证的标准协议,它是 SP 和 IdP 之间实现沟通的技术实现方式之一。SAML 2.0已经是目前实现企业级 SSO 的一种事实标准。
SAML 断言(SAML assertion)
SAML 协议中用来描述认证请求和认证响应的核心元素。例如:用户的具体属性就包含在认证响应的断言里。
信赖(Trust)
建立在 SP 和 IdP 之间的互信机制,通常由公钥和私钥来实现。SP 通过可信的方式获取 IdP 的 SAML元数据,元数据中包含 IdP 签发 SAML 断言的签名验证公钥,SP 则使用公钥来验证断言的完整性。
OIDC
OIDC(OpenID Connect)是建立在 OAuth 2.0基础上的一个认证协议。
OAuth 是授权协议,而 OIDC 在 OAuth 协议上构建了一层身份层,除了 OAuth 提供的授权能力,它还允许客户端能够验证终端用户的身份,以及通过 OIDC 协议的 API(HTTP RESTful 形式)获取用户的基本信息。
OIDC 令牌
OIDC 可以给应用签发代表登录用户的身份令牌,即 OIDC 令牌(OIDC Token)。OIDC 令牌用于获取登录用户的基本信息。
客户端 ID
您的应用在外部 IdP 注册的时候,会生成一个客户端 ID(Client ID)。当您从外部 IdP 申请签发 OIDC 令牌时必须使用该客户端 ID,签发出来的 OIDC 令牌也会通过 aud 字段携带该客户端 ID。在创建 OIDC 身份提供商时配置该客户端 ID,然后在使用 OIDC 令牌换取 STS Token 时,腾讯云会校验OIDC 令牌中 aud 字段所携带的客户端 ID 与 OIDC 身份提供商中配置的客户端 ID 是否一致。只有一致时,才允许扮演角色。
验证指纹
为了防止颁发者 URL 被恶意劫持或篡改,您需要配置外部 IdP 的 HTTPS CA 证书生成的验证指纹。腾讯云会辅助您自动计算该验证指纹,但是建议您在本地自己计算一次(例如:使用 OpenSSL 计算指纹),与腾讯云计算的指纹进行对比。如果对比发现不同,则说明该颁发者 URL 可能已经受到攻击,请您务必再次确认,并填写正确的指纹。
身份提供商 URL
OpenID Connect 身份提供商标识。 对应身份提供商提供的 OpenID Connect 元数据文档中的 "issuer" 字段值。
映射字段
OpenID Connect 身份提供商中与腾讯云 CAM 子用户名映射的字段。 可选身份提供商提供的 OpenID Connect 元数据文档中 "claims_supported" 的值,此示例中使用 name 字段映射 CAM 的 username。
签名公钥
验证 OpenID Connect 身份提供商 ID Token 签名的公钥。 对应身份提供商提供的 OpenID Connect 元数据文档中 "jwks_uri" 字段中链接的内容(在浏览器中打开链接获取内容)。
为了您的账号安全,建议您定期轮换签名公钥。

SSO 方式

腾讯云提供以下两种 SSO 方式:
用户 SSO
腾讯云通过 IdP 颁发的 SAML 断言确定企业用户与腾讯云 CAM 用户的对应关系 。企业可以在本地 IdP 中管理员工信息,企业员工可通过指定的链接登录腾讯云,企业用户登录后,使用该 CAM 用户访问腾讯云资源。更多信息,请参见 用户 SSO 概述
角色 SSO
腾讯云通过 IdP 颁发的 SAML 断言或 OIDC 令牌确定企业用户与腾讯云 CAM 用户的对应关系,企业用户登录后,使用该 CAM 用户访问腾讯云,支持基于SAML 2.0和 OIDC 的两种角色 SSO:
SAML 角色 SSO:腾讯云通过 IdP 颁发的 SAML 断言确定企业用户在腾讯云上可以使用的 CAM 角色。企业用户登录后,使用 SAML 断言中指定的 CAM 角色访问腾讯云资源。更多信息,请参见 SAML 角色 SSO 概览
OIDC 角色 SSO:企业用户通过 IdP 签发的 OIDC 令牌(OIDC Token),调用腾讯云 API 扮演指定角色并换取角色临时身份凭证(STS Token),然后使用 STS Token 安全地访问腾讯云资源。更多信息,请参见 OIDC 角色 SSO 概览

SSO 方式对比

SSO 方式
SP 发起的 SSO
IdP 发起的 SSO
使用子用户账号密码登录
一次性配置 IdP 关联 多个腾讯云账号
多个 IdP
用户 SSO
支持
支持
不支持
不支持
不支持
角色 SSO
不支持
支持
支持
支持
支持