更新时间:2024-04-19 GMT+08:00

认证鉴权

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

  • Token认证:通过Token认证通用请求。

    当调用API网关Silvan接口时,需要采用Token认证方式,需要使用“roles”“op_service”的token,各服务的管理账号一般都具有op_service权限

  • AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。

    通过API网关向下层服务发送请求时,必须使用AK、SK对请求进行签名。

Token认证

Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。

Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。

Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。

usernamedomainname 的获取请参考获取账号名和账号IDpassword为用户密码。

{ 
    "auth": { 
        "identity": { 
            "methods": [ 
                "password" 
            ], 
            "password": { 
                "user": { 
                    "name": "username", 
                    "password": "********", 
                    "domain": { 
                        "name": "domainname" 
                    } 
                } 
            } 
        }, 
        "scope": { 
            "project": { 
                "name": "xxxxxxxx" 
            } 
        } 
    } 
}

当调用API网关Silvan接口时,需要获取用户Token并在调用接口时增加“X-Auth-Token”到业务接口请求消息头中。

获取Token后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。

GET https://iam.ap-southeast-1.myhuaweicloud.com/v3/auth/projects
Content-Type: application/json 
X-Auth-Token: ABCDEFJ....

调用接口步骤

如何调用接口完成Token认证。

  1. 发送“POST https://IAM的Endpoint/v3/auth/tokens”,获取IAM的Endpoint及消息体中的区域名称,请参见地区和终端节点

    请求内容示例如下:

    {
      "auth": {
        "identity": {
          "methods": [
            "password"
          ],
          "password": {
            "user": {
              "name": "username",  //用户名
              "password": "password",  //密码
              "domain": {
                "name": "domainname"  //账户名
              }
            }
          }
        },
        "scope": {
          "project": {
            "name": "ap-southeast-1"  //图像搜索所属区域信息
          }
        }
      }
    }

    请将以上示例代码中的斜体字替换为实际所需要的内容,详情请参考《统一身份认证服务API参考》

  2. 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。
  3. 调用业务接口,在请求消息头中增加“X-Auth-Token”,“X-Auth-Token”的取值为步骤2中获取的Token。

AK/SK认证

AK/SK签名认证方式仅支持消息体大小12M以内,12M以上的请求请使用Token认证。

AK/SK签名认证通过API网关向下层服务发送请求时,必须使用AK、SK对请求进行签名,参见API签名指南

AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。

  • AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。
  • SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。

使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南

签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。

使用子账号AK/SK的时候需要在header中增加字段X-Domain-Id,填入用户的账号ID。

获取AK/SK

  1. 注册并登录图像搜索管理控制台。
  2. 在页面右上方用户名的下拉列表中,单击“我的凭证”。在“我的凭证”界面,单击“管理访问密钥”。
  3. 单击“新增访问密钥”,弹出“新增访问密钥”对话框。
  4. 输入当前用户的登录密码,并通过邮箱或者手机进行验证,输入对应的验证码,单击“确定”,下载访问密钥。

    • 在统一身份服务中创建的用户,如果创建时未填写邮箱或者手机号,则只需校验登录密码。
    • 为防止访问密钥泄露,建议您将其保存到安全的位置。