认证鉴权
调用接口有如下两种认证方式,您可以选择其中一种进行认证鉴权。
- Token认证:通过Token认证通用请求。
当调用API网关Silvan接口时,需要采用Token认证方式,需要使用“roles”为“op_service”的token,各服务的管理账号一般都具有op_service权限。
- AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。
Token认证
Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。
Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。
Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。
username、domainname 的获取请参考获取账号名和账号ID。password为用户密码。
{ "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.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ....
您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333 。
调用接口步骤
如何调用接口完成Token认证。
- 发送“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": "cn-north-1" //图像搜索所属区域信息 } } } }
请将以上示例代码中的斜体字替换为实际所需要的内容,详情请参考《统一身份认证服务API参考》。
- 获取Token,请参考《统一身份认证服务API参考》的“获取用户Token”章节。请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。
- 调用业务接口,在请求消息头中增加“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
- 注册并登录图像搜索管理控制台。
- 在页面右上方用户名的下拉列表中,单击“我的凭证”。在“我的凭证”界面,单击“管理访问密钥”。
- 单击“新增访问密钥”,弹出“新增访问密钥”对话框。
- 输入当前用户的登录密码,并通过邮箱或者手机进行验证,输入对应的验证码,单击“确定”,下载访问密钥。
- 在统一身份服务中创建的用户,如果创建时未填写邮箱或者手机号,则只需校验登录密码。
- 为防止访问密钥泄露,建议您将其保存到安全的位置。