2.AK/SK鉴权

本文介绍了云服务中的AccessKeyID(AK)和SecretAccessKey(SK)的概念,AK作为身份标识,SK用于加密和签名。文章详细阐述了AK/SK的使用过程,包括验证机制和安全注意事项,以及通过时序图展示操作流程。
摘要由CSDN通过智能技术生成

目录

什么是AK/SK

AK/SK使用机制

时序图


什么是AK/SK

在云服务中,AK(Access Key ID)和SK(Secret Access Key)是访问云服务API的关键凭证对,主要用于身份验证和授权。AK是用户访问云服务的身份标识,而SK则是用于加密和签名请求的重要密钥,用于证实请求确实来自于拥有该AK的合法用户。

具体来说:

  • Access Key ID(AK):类似于用户名,是一个全局唯一的字符串,对外公开,但本身不具备安全性,仅用于标识用户的访问密钥对。

  • Secret Access Key(SK):类似于密码,是一个高度敏感的字符串,绝对不能公开,用于生成数字签名以验证请求的真实性。每个请求在发送到云服务之前,都需要使用SK进行签名,云服务端通过验证签名来确保请求是由持有对应AK和SK的合法用户发出的。

在实际使用云服务API时,用户通常会在客户端(如SDK、API调用工具或应用程序)中配置AK和SK,以便在进行API调用时进行身份验证。出于安全考虑,强烈建议用户定期更换AK/SK对,并且在不使用时妥善保管SK,避免泄露导致账户被非法访问。

AK/SK使用机制

1.云主机接收到用户的请求后,系统将使用AK对应的相同的SK和同样的认证机制生成认证字符串;

2.与用户请求中包含的认证字符串进行比对;

3.如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码;

时序图

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java中的HttpURLConnection和POST方法来访问AK/SK认证方式的HTTP接口。以下是一个示例代码: ```java import java.net.*; import java.io.*; public class AKSKDemo { public static void main(String[] args) throws Exception { String ak = "your-ak"; String sk = "your-sk"; // 接口地址 String url = "http://111.203.10.155/MicroApp/nmsmc-system-basic/dict"; // 构造POST请求 URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); con.setRequestMethod("POST"); // 设置AK/SK认证头部信息 String auth = ak + ":" + sk; byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes()); String authHeader = "Basic " + new String(encodedAuth); con.setRequestProperty("Authorization", authHeader); // 发送POST请求 con.setDoOutput(true); OutputStream os = con.getOutputStream(); os.write("param1=value1&param2=value2".getBytes()); os.flush(); os.close(); // 处理响应结果 int responseCode = con.getResponseCode(); System.out.println("Response Code: " + responseCode); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println("Response Body: " + response.toString()); } } ``` 在代码中,需要将`your-ak`和`your-sk`替换为你的AKSK。在发送POST请求时,需要将请求参数以`param1=value1&param2=value2`的形式写入请求体中。接口返回的响应结果可以通过`con.getInputStream()`获取,然后通过`BufferedReader`读取响应结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值