获取临时AK/SK
功能介绍
通过已经获取的用户token、委托token和联邦token,可以获取临时的AK/SK、securitytoken(离线AK/SK)。临时AK/SK即给用户颁发的具有临时权限的令牌,遵循权限最小化原则,可应用于临时访问OBS等。
URI
POST /v3.0/OS-CREDENTIAL/securitytokens
请求消息
- Request Header参数说明
- 使用委托token,即methods为assume_role时
参数
是否必选
类型
描述
X-Auth-Token
是
String
具有Agent Operator权限的token。
Content-Type
是
String
该字段填为“application/json;charset=utf8”。
- 使用普通token(用户token、联邦token),即methods为token时
参数
是否必选
类型
描述
Content-Type
是
String
该字段填为“application/json;charset=utf8””。
X-Auth-Token
否
String
用户token或者联邦token,该值与请求体中token的id二选一,X-Auth-Token优先。
- 使用委托token,即methods为assume_role时
- Request Body参数说明
- 使用委托token,即methods为assume_role时
参数
必选/可选
类型
描述
methods
必选
String Array
该字段内容为“assume_role”。
agency_name
必选
String
委托方用户创建的委托的名称。
domain_name或domain_id
必选
String
委托用户的所属账号的名称。
duration_seconds
可选
Int
AK/SK和securitytoken的有效期,时间单位为秒。取值范围:15min ~ 24h ,默认为15min
scope
可选
Object
AK/SK和securitytoken。该值若不填,生成的securitytoken不包括scope信息。推荐不填。该值若填写,取值为project或domain,二选一即可。
- 示例1:取值为project时,表示获取的AK/SK和securitytoken仅能访问指定project下的资源,project支持id和name,二选一即可。
"scope": { "project": { "id": "0b95b78b67fa045b38104c12fb..." } }
- 示例2:取值为domain时,表示获取的AK/SK和securitytoken可以访问指定账号下所有资源,domain支持id和name,二选一即可。
"scope": { "domain": { "name": " domain A" } }
- 示例1:取值为project时,表示获取的AK/SK和securitytoken仅能访问指定project下的资源,project支持id和name,二选一即可。
- 使用普通token(用户token、联邦token),即methods为token时
参数
必选/可选
类型
描述
methods
必选
String Array
该字段内容为“token”。
token
可选
Json Object
用于获取临时AK/SK的普通token或者联邦token,该对象中的id与请求头部中的X-Auth-Token二选一,X-Auth-Token优先。
duration_seconds
可选
Int
AK/SK和securitytoken的有效期,时间单位为秒。取值范围:15min ~ 24h ,默认为15min。
- 使用委托token,即methods为assume_role时
- 请求示例
- methods为assume_role方式进行请求
{ "auth": { "identity": { "methods": [ "assume_role" ], "assume_role": { "domain_id": "411edb4b634144f587ffc88f9bbdxxx", "xrole_name": "testagency", "duration_seconds": 3600 } } } }
- methods为tokens方式进行请求
{ "auth": { "identity": { "methods": [ "token" ], "token": { "id": "MIIDkgYJKoZIhvcNAQcCoIIDgzCCA38CAQExDTALBglghkgBZQMEAgEwgXXXXX...", "duration_seconds": 900 } } } }
- methods为assume_role方式进行请求
响应
- Response Body参数说明
参数
必选/可选
类型
描述
credential
必选
Object
认证信息
- credential内容说明
参数
必选/可选
类型
描述
expires_at
必选
String
过期时间
access
必选
String
AK
secret
必选
String
SK
securitytoken
必选
String
用于后续换SK或Token使用
- 响应示例
{ "credential": { "access": "NQC51NFINJS1JXX...", "secret": "EY74MByPZ46kTRJL9ay5DskqXX...", "expires_at": "2017-04-17T07:55:18.575000Z", "securitytoken": "gAAAAABY9GbWUaGtoa9DPj7_dE4qUSnAXXX..." } }
状态码
状态码 |
说明 |
---|---|
201 |
请求成功 |
400 |
请求失败 |
401 |
认证失败 |
403 |
鉴权失败 |
500 |
系统异常 |