合作伙伴中心-如何将合作伙伴Token置换为客户Token:操作步骤

时间:2025-02-12 15:04:36

操作步骤

  1. 调用 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": "合作伙伴的华为云账户"            }        }    }}
    图1 获取合作伙伴华为云账户Token
  2. 调用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"            }        }    }}
    图2 获取合作伙伴客户的华为云账户Token

    响应体解读:

    • readonly角色就是Tenant Guest权限,te_admin是Tenant Administrator权限,如图3所示。
      图3 权限解读
    • 图4红框中是返回的project id。
      图4 项目ID
support.huaweicloud.com/bpconsole_faq/bpconsole_apifaq_00001.html