如何将合作伙伴Token置换为客户Token
操作步骤
- 调用IAM接口“获取用户Token”获取合作伙伴华为云账户Token。
IAM接口的Endpoint请参考“地区和终端节点”页面列举的IAM Endpoint。如果请求体中scope字段中为domain,请使用区域为“ALL”的Endpoint。如果scope字段中为project,既可以使用区域为“ALL”的Endpoint,也可以使用相应project所在区域对应的Endpoint。
此步操作不需要传入任何Token,请求Header中仅需增加“Content-Type”,取值为“application/json”。示例如图1所示,图中红框Headers中的“x-subject-token”字段就是合作伙伴Token。
请求体示例:
{ "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "合作伙伴的华为云账户", "domain": { "name": "合作伙伴的华为云账户" }, "password": "XXXXX" } } }, "scope": { "domain": { "name": "合作伙伴的华为云账户" } } } }
- 调用IAM接口“通过assume_role方式获取用户token”获取合作伙伴客户的华为云账户Token。
请求Header中需要增加Content-Type和X-Auth-Token,其中Content-Type取值为“application/json”,X-Auth-Token取值为1中获取的BP Token。示例如图2所示,图中红框Headers中的“x-subject-token”字段就是合作伙伴客户的华为云账户Token。合作伙伴使用客户的华为云账户Token可以去操作客户华为云账户的资源。
请求体示例:
{ "auth": { "identity": { "methods": [ "assume_role" ], "assume_role": { "domain_name": "合作伙伴客户的华为云账户", "agency_name": "创建委托关系时的委托名称(合作伙伴平台标识xaccountType)" } }, "scope": { "project": { "name": "合作伙伴客户资源所在的project name" } } } }
响应体解读: