AK/
SK(Acces
sKey/SecretKey)认证是一种常见的 API 接口认证方式,常用于云计算、大数据、人工智能等领域的 API 接口。
AK/
SK 认证的基本原理是客户端使用
AK 和
SK 进行身份验证,服务器端根据
AK 和
SK 验证客户端身份,并根据权限限制访问资源。其中,
AK 用于标识客户端身份,
SK 则用于对请求参数进行签名,防止请求参数被篡改。
AK/
SK 认证签名逻辑如下:
1. 客户端发送请求时,将请求参数按照字典序排序,并按照 key1=value1&key2=value2 的格式拼接成字符串 stringToSign。
2. 将 stringToSign 和
SK 进行 HMAC-SHA1 签名,得到签名 signature。
3. 将 signature 添加到请求参数中,发送给服务器端。
4. 服务器端收到请求后,提取
AK 和 signature,根据
AK 查找对应的
SK,并按照同样的签名逻辑生成 signature2。
5. 将 signature 和 signature2 进行比较,如果相同,则认为客户端身份合法,否则认为客户端身份非法。
注意事项:
1. 请求参数中不能包含特殊字符,需要进行 URL 编码。
2. 签名时需要使用 UTF-8 编码。