AK-SK鉴权
功能描述功能描述
配置自己的AK/SK,或是使用网关自动生成的AK/SK,完成认证。
客户端涉及的AK/SK签名以及请求发送的流程概述如下:
(1)构造规范请求。将待发送的请求内容按照与API网关后台约定的规则组装,确保客户端签名、API网关后台认证时使用的请求内容一致。
(2)使用规范请求和其他信息创建待签字符串。
(3)使用AK/SK和待签字符串计算签名。
(4)将生成的签名信息作为请求消息头添加到HTTP请求中,或者作为查询字符串参数添加到HTTP请求中。
请求参数说明:
参数名 | 说明 | 必填 | 值可能性 | 参数位置 |
---|---|---|---|---|
Authorization-Type | 鉴权方式 | 是 | AK/SK | Header |
Authorization | token值 | 是 | Header |
-H "Authorization-Type: AK/SK"
-H "Authorization: HMAC-SHA256 Access=19823ef8f417b489515570c83e3d397f, \
SignedHeaders=content-type;host;x-gateway-date, \
Signature=3909cd0042fed21287e64b2436adb10ad12894c9beeb69f932efee872fd589ab"
判断用户请求中是否包含Authorization认证字符串。如果包含认证字符串,则执行下一步操作。
基于HTTP请求信息,使用相同的算法,生成Signature字符串。
使用服务器生成的Signature字符串与用户提供的字符串进行比对,如果内容不一致,则认为认证失败,拒绝该请求;如果内容一致,则表示认证成功,系统将按照用户的请求内容进行操作。
原理:
客户端:
1. 构建http请求(包含 access key);
2. 使用请求内容和 使用secret access key计算的签名(signature);
3. 发送请求到服务端。
服务端:
1. 根据发送的access key 查找数据库得到对应的secret-key;
2. 使用同样的算法将请求内容和 secret-key一起计算签名(signature),与客户端步骤2相同;
3. 对比用户发送的签名和服务端计算的签名,两者相同则认证通过,否则失败。
Basic鉴权
插件名称插件名称
类别 | 名称 | 字段 | 属性 |
---|---|---|---|
服务插件 | Basic鉴权 | goku-basic_auth | 用户鉴权(静态token) |
功能描述功能描述
鉴权方式的一种,设置Basic Auth的Username与Password,不能通过认证的用户将无权访问接口。
请求参数说明:
参数名 | 说明 | 必填 | 值可能性 | 参数位置 |
---|---|---|---|---|
Authorization-Type | 鉴权方式 | 是 | Basic | Header |
Authorization | 鉴权值 | 是 | Header |
参数名 | 说明 |
---|---|
userName | 用户名 |
password | 密码 |
hildCredential | 转发时是否隐藏basicAuth验证信息 |
请求参数请求参数
参数名 | 说明 | 必填 | 值可能性 | 参数位置 |
---|---|---|---|---|
Authorization-Type | 鉴权方式 | 是 | Basic | header |
Authorization | 鉴权值 | 是 | header |
当客户端向服务器发送请求时,如果服务器要求进行身份验证,客户端就会在请求头中添加 Authorization
标头,以告知服务器身份验证的方式。
在 Basic 身份验证中,Authorization
标头的值是由字符串 "Basic" 后跟一个空格,再跟上用户名和密码的 Base64 编码组成的。具体格式如下:
Authorization: Basic <base64EncodedCredentials>
在 <base64EncodedCredentials>
中,通常是将 username:password
这样的字符串进行 Base64 编码后得到的结果。例如,如果用户名是 user
,密码是 password
,那么对应的 Authorization
标头就是:
Authorization: Basic dXNlcjpwYXNzd29yZA==
标签:请求,Ak,SK,Basic,字符串,鉴权,Authorization From: https://www.cnblogs.com/codestack/p/18021404