SSO概览

更新时间:2023-09-20 03:00:45

阿里云支持基于SAML 2.0OIDCSSO(Single Sign On,单点登录),也称为身份联合登录。本文为您介绍企业如何使用自有的身份系统实现与阿里云的SSO。

SSO基本概念

概念

说明

概念

说明

身份提供商(IdP)

一个包含有关外部身份提供商元数据的RAM实体,身份提供商可以提供身份管理服务。

  • 企业本地IdP:Microsoft Active Directory Federation Service (AD FS)、Shibboleth等。

  • Cloud IdP:阿里云应用身份服务Azure AD、Google Workspace、Okta、OneLogin等。

服务提供商(SP)

利用IdP的身份管理功能,为用户提供具体服务的应用,SP会使用IdP提供的用户信息。一些非SAML协议的身份系统(例如:OpenID Connect),也把服务提供商称作IdP的信赖方。

安全断言标记语言(SAML 2.0)

实现企业级用户身份认证的标准协议,它是SPIdP之间实现沟通的技术实现方式之一。SAML 2.0已经是目前实现企业级SSO的一种事实标准。

SAML断言(SAML assertion)

SAML协议中用来描述认证请求和认证响应的核心元素。例如:用户的具体属性就包含在认证响应的断言里。

信赖(Trust)

建立在SPIdP之间的互信机制,通常由公钥和私钥来实现。SP通过可信的方式获取IdPSAML元数据,元数据中包含IdP签发SAML断言的签名验证公钥,SP则使用公钥来验证断言的完整性。

OIDC

OIDC(OpenID Connect)是建立在OAuth 2.0基础上的一个认证协议。OAuth是授权协议,而OIDCOAuth协议上构建了一层身份层,除了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字段所携带的客户端IDOIDC身份提供商中配置的客户端ID是否一致。只有一致时,才允许扮演角色。

验证指纹

为了防止颁发者URL被恶意劫持或篡改,您需要配置外部IdPHTTPS CA证书生成的验证指纹。阿里云会辅助您自动计算该验证指纹,但是建议您在本地自己计算一次(例如:使用OpenSSL计算指纹),与阿里云计算的指纹进行对比。如果对比发现不同,则说明该颁发者URL可能已经受到攻击,请您务必再次确认,并填写正确的指纹。

颁发者URL

颁发者URL由外部IdP提供,对应OIDC Token中的iss字段值。颁发者URL必须以https开头,符合标准URL格式,但不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。

临时身份凭证

STS(Security Token Service)是阿里云提供的一种临时访问权限管理服务,通过STS获取可以自定义时效和访问权限的临时身份凭证(STS Token)。

SSO方式

阿里云提供以下两种SSO方式:

  • 用户SSO

    阿里云通过IdP颁发的SAML断言确定企业用户与阿里云RAM用户的对应关系 。企业用户登录后,使用该RAM用户访问阿里云资源。更多信息,请参见用户SSO概览

  • 角色SSO

    支持基于SAML 2.0OIDC的两种角色SSO:

    • SAML角色SSO:阿里云通过IdP颁发的SAML断言确定企业用户在阿里云上可以使用的RAM角色。企业用户登录后,使用SAML断言中指定的RAM角色访问阿里云资源。请参见SAML角色SSO概览

    • OIDC角色SSO:企业用户通过IdP签发的OIDC令牌(OIDC Token),调用阿里云API扮演指定角色并换取角色临时身份凭证(STS Token),然后使用STS Token安全地访问阿里云资源。更多信息,请参见OIDC角色SSO概览

SSO方式比较

SSO方式

SP发起的SSO

IdP发起的SSO

使用RAM用户账号和密码登录

一次性配置IdP关联多个阿里云账号

多个IdP

SSO方式

SP发起的SSO

IdP发起的SSO

使用RAM用户账号和密码登录

一次性配置IdP关联多个阿里云账号

多个IdP

用户SSO

支持

支持

不支持

不支持

不支持

角色SSO

不支持

支持

支持

支持

支持

说明

关于用户SSO与角色SSO的更多比较,请参见SSO方式的适用场景

SSO常见问题

单点登录(SSO)常见问题

  • 本页导读 (1)
  • SSO基本概念
  • SSO方式
  • SSO方式比较
  • SSO常见问题