全部产品
Search
文档中心

访问控制:OAuth应用概览

更新时间:Sep 12, 2024

RAM支持使用OAuth 2.0协议进行用户认证和应用授权。本文介绍阿里云OAuth 2.0服务的基本概念、应用场景和OAuth范围。

基本概念

概念

说明

用户

用户需要登录到阿里云并授权应用访问阿里云资源。用户可以是阿里云账号(主账号)、RAM用户和RAM角色。

说明

2024年09月10日之前已创建的OAuth应用不支持RAM角色,请提交工单申请。

阿里云OAuth 2.0服务

阿里云OAuth 2.0服务对用户进行认证,并接受用户对应用的授权,生成代表用户身份的令牌并返回给被授权的应用。

OAuth应用

使用OAuth应用获取用户授权,并获取代表用户身份的令牌,从而可以访问阿里云。

阿里云OAuth 2.0服务支持以下几种类型的应用:

  • WebApp:指基于浏览器交互的网络应用。

  • NativeApp:指操作系统中运行的本地应用,主要为运行在桌面操作系统或移动操作系统中的应用。

  • ServerApp:指直接访问阿里云服务,而无需依赖用户登录的应用。目前仅支持基于SCIM协议的用户同步应用。

按照应用的归属,可以将应用分为以下几种:

  • 企业应用:您自己开发的应用,需要通过OAuth 2.0服务获取用户的阿里云身份。

  • 第三方应用:您授权的其他人开发的应用,用于获取您的阿里云身份。

OAuth范围

OAuth 2.0服务通过OAuth范围来限定应用扮演用户登录阿里云后可以访问的范围。支持的范围如下:

  • openid:用于获取用户的OpenID(默认权限范围,不可移除)。

    说明

    获取到的OpenID是一个可以唯一代表用户的字符串,但并不包含阿里云UID、用户名等信息。如果需要这些信息,需要使用aliuid、profile等权限范围。

  • aliuid:用于获取阿里云UID。

  • profile:用于获取用户名称等个人信息。

  • /acs/ccc:用于访问阿里云呼叫中心服务API。

  • /acs/alidns:用于访问阿里云解析API。

  • /acs/scim:用于访问阿里云跨域身份管理服务。

  • /acs/digitalstore:用于访问数字化门店(Digital Store)。

  • /acs/scsp:用于访问智能客服平台(Smart Customer Service Platform)。

  • /acs/cloudgame:用于访问云游戏平台(Cloud Gaming Platform)。

  • /acs/aiccs:用于访问智能联络中心。

  • /acs/cloudesl:阿里云价签服务API。

  • /acs/alimt:机器翻译服务的访问权限。

令牌

OAuth 2.0服务可以给应用下发代表登录用户的令牌。

  • 身份令牌:包含用户的身份信息,不能用于访问阿里云资源。

  • 访问令牌:包含用户的身份信息以及应用的OAuth范围,可以用于访问OAuth范围内的阿里云资源。

  • 刷新令牌:用于换取新的访问令牌。

阿里云API

应用通过调用API可以访问相应资源。

应用场景

OAuth范围

阿里云RAM产品提供openid、aliuid、profile三个OAuth范围,获得用户授权可获得下表所示的信息。

参数名称

定义

示例

需要的OAuth范围

exp

令牌过期时间戳。

1517539523

openid

sub

唯一代表登录用户的字符串,但并不包含阿里云UID、用户名等信息。

说明

当登录用户为RAM角色时,sub将根据角色扮演者<RoleId:RoleSessionName>生成,每个扮演者都有独立的sub

123456789012****

openid

aud

令牌接收者,OAuth应用ID。

4567890123456****

openid

iss

令牌颁发者。取值为https://oauth.aliyun.com

https://oauth.aliyun.com

openid

iat

令牌颁发时间戳。

1517533200

openid

aid

登录用户所属的阿里云账号(主账号)ID。

177242285274****

aliuid

uid

登录用户的ID。取值:

  • 阿里云账号(主账号):阿里云账号(主账号)ID,与aid相同。

  • RAM用户:RAM用户ID。

  • RAM角色:RAM角色ID。

20124982101502****

aliuid

type

登录用户类型。取值:

  • account:阿里云账号(主账号)

  • user:RAM用户。

  • role:RAM角色

user

profile

login_name

阿里云账号(主账号)的登录名称。

说明

阿里云账号(主账号)请求时才会返回该参数。

Alice

profile

upn

RAM用户的登录名称。

说明

RAM用户请求时才会返回该参数。

Bob@examplecompany.onaliyun.com

profile

name

登录用户名称。取值:

  • RAM用户:RAM用户的显示名称。

  • RAM角色:<RoleName:RoleSessionName>

说明

RAM用户和RAM角色请求时才会返回该参数。

Bob

profile