首页 > 其他分享 >Ak/SK

Ak/SK

时间:2024-02-19 16:36:31浏览次数:14  
标签:请求 Ak SK Basic 字符串 鉴权 Authorization

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

相关文章

  • 远程控制软件RustDesk自建服务器全平台部署及使用教程
    RustDesk挺出名的一款远程控制,远程协助的开源软件。完美替代TeamViewer,ToDesk,向日葵等平台。关键支持自建服务器,更安全私密远程控制电脑!其中客户端支持安卓,且支持控制安卓手机。官方地址官网:https://rustdesk.com/开源地址:https://github.com/rustdesk/一、准备工作1,有自己......
  • 苹果iPhone手机Trollstore巨魔2必备神器Misaka.ipa签名安装支持iOS15.5~16.6.1错误如
    文末附工具链接和视频介绍引言上一篇,介绍了哪些设备可以安装巨魔2:巨魔TrollStore2已经支持更多版本和型号A12-A17今天继续实战介绍,如何在iPhone上安装巨魔TrollStore2的前置工作,通过Misaka来安装巨魔TrollStore2,先进行Misaka.ipa签名安装。Misaka支持哪些iOS版本和方式......
  • 靶机Matrix-Breakout 2 Morpheus
    Matrix-Breakout2Morpheus笔记拿到靶机先扔VMware信息收集没其他东西了,于是先在nmap收集信息nmap-sn192.168.0.0/24-snPing扫描-禁用端口扫描发现靶机地址为192.168.0.104,继续收集信息,先给一套组合拳nmap-T4-sV-p--A192.168.0.104-sV:此选项启用版本检测。......
  • F - Breakdown
    F-BreakdownProblemStatementYouaregivenasimpleundirectedgraphconsistingof$N$verticesand$M$edges.For$i=1,2,\ldots,M$,the$i$-thedgeconnectsvertices$u_i$and$v_i$.Also,for$i=1,2,\ldots,N$,vertex$i$isassignedapos......
  • ZLmediakit的TCP主动接收RTP数据
    当我们使用openRtpServer接口的时候,一般都是别人主动向port或者默认端口(默认1000)上推数据;这种属于ZLM的socket被动接收连接(TCP),ZLM的RTPserver作为服务端,监听端口,有别人过来链接之后,握手建立连接,传输数据;如果我们想主动去链接对方,告诉对方给我发数据要怎么处理呢?首先,发送数据端......
  • [ARC067F] Yakiniku Restaurants
    首先考虑暴力。\(\mathcalO(n^2m)\)枚举左右两个端点,再贪心地选其中\(M\)张票的美味度最大那一家餐馆。复杂度不可接受,但是不难感觉到正解应该是\(\mathcalO(n^2)\)的。考虑枚举左端点\(i\),对于当前左端点,记每一个右端点\(j\)的答案为\(now_j\),若暂时不考虑距离,大部分......
  • Skywalking-Aop Docker单机环境搭建
    本次搭建是基于MySQL进行持久化,因此需要提前准备好一个MySQL容器(MySQL容器部署略过)。如有错误还请指正。OAP服务搭建拉取skywalking-oap镜像dockerpullapache/skywalking-oap-server:8.9.0接下来可以进行一个简单的启动,目的是拷贝出config目录到宿主机后进行挂载(docke......
  • Makefile 特殊符号
     一.@符号:    在规则运行中,表示不显示命令行本身,只显示它的结果二.自动变量:$@,$^,$<,$?,$+,$%,$*   $@:表示目标文件,或规则中的目标文件集;在模式规则中,如果有多个目标,那么,$@就是匹配于目标中模式定义的集合。  $^:表示所有的依赖文件  $<:表示第一......
  • [ Skill ] equal, eq, eqv, member, memq, memv
    https://www.cnblogs.com/yeungchie/equal等效运算法==equal(11);=>tequal(11.0);=>teq直接比较内存地址,因此效率比equal高不建议用于比较字符串、数字、链表eq(11);=>teq(11.0);=>nileq("ab""ab");=>teq("a&quo......
  • ThreadPoolTaskExecutor以及通过注解实现异步任务
    ThreadPoolTaskExecutor是Spring框架的线程池,实现方式如下:1//声明一个name为asyncTaskExecutor的线程池bean到容器中2@Bean("asyncTaskExecutor")3publicExecutorgetAsyncExecutor(){4ThreadPoolTaskExecutorthreadPoolExecutor=newThreadPoolTaskExecuto......