更新时间:2022-02-21 GMT+08:00

Token认证

操作场景

当您使用Token认证方式调用API时,需要获取用户Token并在调用API时将Token值设置到调用请求的“X-Auth-Token”头域中。

调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。

  • Token认证:通过Token认证通用请求。
  • AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)对调用请求内容进行签名认证。

调用接口步骤

  1. 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。

    以下示例为使用接口测试工具手工获取Token方案。

    图1 请求示例
    图2 从返回消息的Header中获取X-Subject-Token
  2. 调用业务接口,在请求消息头中增加“X-Auth-Token”,“X-Auth-Token”的取值为1中获取的Token。

接口调用示例

本小节介绍使用API的基本流程。

  1. 获取相关信息。

    已获取IAM的Endpoint,具体请参见地区和终端节点

  2. 在管理控制台,单击用户名,在下拉列表中单击“我的凭证”,查看“项目ID”。
  3. 获取用户Token,并设置成环境变量,Token用于后续调用其他接口鉴权。
    1. 执行以下命令,获取用户Token。
      curl -X POST https://{iam_endpoint}/v3/auth/tokens -H 'content-type: application/json' -d '{
      	"auth": {
      		"identity": {
      			"methods": [
      				"password"
      			],
      			"password": {
      				"user": {
      				"name": "{user_name}",
      					"domain": {
      						"name": "{user_name}"
      					},
      			"password": "{password}"
      				}
      			}
      		},
      		"scope": {
      			"project": {
      				"id": "{project_id}"
      			}
      		}
      	}
      }' -vk

      上述命令中,部分参数请参见以下说明进行修改(具体请参考《统一身份认证服务API参考》):

      • {iam_endpoint}替换为前提条件中获取的IAM的Endpoint。
      • {project_id}替换为前提条件中获取的项目ID。
      • {user_name}和{password}分别替换为连接IAM服务器的用户名和密码。

      响应Header中“X-Subject-Token”的值即为Token:

      X-Subject-Token:MIIDkgYJKoZIhvcNAQcCoIIDgzCCAxxxxxx38CAQExDTALBglghkgBZQMEAgEwg
    2. 使用如下命令将token设置为环境变量,方便后续事项。

      export Token={X-Subject-Token}

      X-Subject-Token即为3.a获取到的token,命令示例如下。

      export Token=MIIDkgYJKoZIhvcNAQcCoIIDgzCCAxxxxxx38CAQExDTALBglghkgBZQMEAgEwg
  4. 调用API,请参考认证前准备获取域名、请求方法和URL。参数请根据实际情况填写。
    curl -X 请求方法 域名+URL  -H "x-auth-token: $Token" -vk