您可以通过配置用户SSO(Single Sign On,单点登录,也称为身份联合登录)或角色SSO,实现使用企业自身的身份认证系统登录阿里云控制台。

背景信息

阿里云支持基于SAML 2.0的SSO(Single Sign On,单点登录),也称为身份联合登录。为了更好地理解SSO,下面简要介绍与SAML/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)实现企业级用户身份认证的标准协议,它是SP和IdP之间实现沟通的技术实现方式之一。SAML 2.0已经是目前实现企业级SSO的一种事实标准。
SAML断言(SAML assertion)SAML协议中用来描述认证请求和认证响应的核心元素。例如:用户的具体属性就包含在认证响应的断言里。
信赖(Trust)建立在SP和IdP之间的互信机制,通常由公钥和私钥来实现。SP通过可信的方式获取IdP的SAML元数据,元数据中包含IdP签发SAML断言的签名验证公钥,SP则使用公钥来验证断言的完整性。
OIDCOIDC(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颁发者URL由外部IdP提供,对应OIDC Token中的iss字段值。颁发者URL必须以https开头,符合标准URL格式,但不允许带有query参数(以?标识)、fragment片段(以#标识)和登录信息(以@标识)。
临时身份凭证STS(Security Token Service)是阿里云提供的一种临时访问权限管理服务,通过STS获取可以自定义时效和访问权限的临时身份凭证(STS Token)。

SSO的方式

企业根据自身需要,使用支持SAML 2.0的企业IdP(例如:AD FS)与阿里云进行SSO。阿里云提供以下两种基于SAML 2.0协议的SSO方式:

  • 用户SSO:阿里云通过IdP颁发的SAML断言确定企业用户与阿里云RAM用户的对应关系 。企业用户登录后,使用该RAM用户访问阿里云。
  • 角色SSO:阿里云通过IdP颁发的SAML断言确定企业用户在阿里云上可以使用的RAM角色。企业用户登录后,使用SAML断言中指定的RAM角色访问阿里云。

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

配置操作步骤

同步子账号

配置完成SSO后,管理员需要在DMS的系统管理 > 用户管理中单击同步子账号,将需要使用DMS的其他RAM账号批量添加至DMS中,更多信息,请参见添加用户
说明 若子账号拥有AdministratorAccess权限,将自动初始化为DMS管理员角色;其他均子账号将初始化为普通用户角色,更多关于DMS系统角色的信息,请参见系统角色

效果示例

下面为完成Microsoft AD到阿里云单点登录配置的效果示例。

  1. 在浏览器输入子用户登录地址。
  2. 单击使用企业账户登录
    页面将跳转至企业自身的认证系统。
  3. 输入账号和密码,单击登录
    说明 此次的账号和密码为企业自身认证系统中的账号和密码,由企业自身维护。
  4. 在产品名中,单击数据管理DMS。
    即可访问数据管理DMS。