插件名称类别
名称
描述
属性
服务插件
AK/SK 鉴权
gw-ak_sk_auth
用户鉴权
功能描述
配置自己的AK/SK,或是使用网关自动生成的AK/SK,完成认证。
客户端涉及的AK/SK签名以及请求发送的流程概述如下:
(1)构造规范请求。将待发送的请求内容按照与API网关后台约定的规则组装,确保客户端签名、API网关后台认证时使用的请求内容一致。
(2)使用规范请求和其他信息创建待签字符串。
(3)使用AK/SK和待签字符串计算签名。
(4)将生成的签名信息作为请求消息头添加到HTTP请求中,或者作为查询字符串参数添加到HTTP请求中。
请求参数说明:
参数名
说明
必填
值可能性
参数位置
Authorization-Type
鉴权方式
是
AK/SK
Header
Authorization
token值
是
Header
使用说明
一、构造规范请求
使用AK/SK方式进行签名与认证,首先需要规范请求内容,然后再进行签名。客户端与API网关使用相同的请求规范,可以确保同一个HTTP请求的前后端得到相同的签名结果,从而完成身份校验。
HTTP请求规范伪代码如下:
CanonicalRequest =
HTTPRequestMethod + '\n' +
CanonicalURI + '\n' +
CanonicalQueryString + '\n' +
CanonicalHeaders + '\n' +
SignedHeaders + '\n' +
HexEncode(Hash(RequestPayload))
假设 原始请求 如下:
GET http://www.demo.com/demo/login?parm1=value1&parm2= HTTP/1.1
Host: www.demo.com
X-Gateway-Date: 20200605T104456Z
1、HTTPRequestMethod:构造HTTP请求方法,以换行符结束。
HTTP请求方法,如GET、PUT、POST等。
构造示例:
GET
2、CanonicalURI:添加规范URI参数,以换行符结束。规范URI,即请求资源路径,是URI的绝对路径部分的URI编码。
根据RFC 3986标准化URI路径,移除冗余和相对路径部分,路径中每个部分必须为URI编码。如果URI路径不以“/”结尾,则在尾部添加“/”。
注意:
计算签名时,URI必须以“/”结尾。发送请求时,可以不以“/”结尾。
构造示例:
GET
/demo/login/
3、CanonicalQueryString:添加规范查询字符串,以换行符结束。查询字符串,即查询参数。如果没有查询参数,则为空字符串,即规范后的请求为空行。
规范查询字符串需要满足以下要求ÿ