AK/SK的基本概念及其认证过程

本文介绍了AK/SK身份认证的基本概念,涉及AccessKeyID和SecretAccessKey的使用,以及在客户端和服务端间的认证过程,通过签名对比确保安全通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、AK/SK的基本概念

ak/sk是一种身份认证方式,常用于系统间接口调用时的身份验证,其中ak为Access Key ID,sk为Secret Access Key。客户端和服务端两者会协商保存一份相同的sk,其中sk必须保密。

二、AK/SK的认证过程

客户端在调用的服务端接口时候,会带上ak以及signature(使用sk对内容进行加密后得出的签名)进行请求,在服务端接收到这个请求的时候,首先会根据ak去数据库里面去找到对应的sk,然后使用sk对请求内容进行加密得到一个签名,然后对比客户端传过来的签名和服务端计算的出来的签名是否一致,如果一致则代表身份认证通过,反之则不通过。

### 如何在 Postman 中配置 AK/SK 认证 为了在 Postman 中实现 AK/SK 身份验证,需按照如下方式进行设置: #### 配置环境变量 建议先创建一组环境变量来存储 `Access Key` 和 `Secret Access Key` ,以便于管理和安全性。 1. 打开Postman并进入所需集合或全局环境设置。 2. 添加两个新的环境变量:一个是`accessKey`,另一个是`secretKey`,分别填入相应的AKSK值[^1]。 #### 编写预请求脚本 由于大多数API服务要求对请求参数进行加密处理,所以通常会在发送前通过Pre-request Script自动生成签名。下面是一段简单的JavaScript代码片段,展示了如何利用SHA-256算法结合时间戳生成HMAC-SHA256类型的signature: ```javascript const cryptoJs = require("crypto-js"); pm.environment.set("timestamp", new Date().toISOString()); let stringToSign = pm.environment.get('method') + '\n' + pm.environment.get('uriPath') + '\n' + pm.environment.get('queryString') + '\n' + pm.environment.get('bodyHash') + '\n' + pm.environment.get('timestamp'); // 使用CryptoJS库中的HmacSHA256函数计算签名 let secretKey = pm.environment.get('secretKey'); let signature = CryptoJS.HmacSHA256(stringToSign, secretKey).toString(CryptoJS.enc.Hex); pm.environment.set("signature", signature); ``` 注意:上述代码假定已安装了必要的第三方库(如CryptoJS)。如果未预先加载这些依赖项,则可能需要调整具体实现细节以适应实际情况。 #### 设置请求头 最后一步是在Headers选项卡里加入必需的身份验证信息。对于采用AK/SK机制的服务来说,一般会涉及到以下几个关键字段: - **Authorization**: 构造格式为 "AK {your_access_key}:{generated_signature}" 的字符串作为此header的value部分; - **Date/X-Amz-Date**: 如果API文档中有特别说明的话,应该提供一个标准的时间表示法,比如ISO 8601格式化后的当前日期时间; - **Content-Type**: 明确指定payload的内容类型,例如application/json; 确保以上提到的各项都已被正确定义,并且其取值能够反映实际应用场景下的需求特点[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值