公有云API的认证方式:AK/SK 简介

1 公有云API的认证方式

一般有一夏几种认证方式:

  1. Token认证
  2. AK/SK认证
  3. RSA非对称加密方式
    下面主要介绍AK/SK

1 AK/SK

1.1 AK/SK 原理

云主机需要通过使用Access Key Id / Secret Access Key加密的方法来验证某个请求的发送者身份。Access Key Id(AK)用于标示用户,Secret Access Key(SK)是用户用于加密认证字符串和云厂商用来验证认证字符串的密钥,其中SK必须保密。 AK/SK原理使用对称加解密。

1.2 AK/SK使用机制

云主机接收到用户的请求后,系统将使用AK对应的相同的SK和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。

1.3 流程

  • 判断用户请求中是否包含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. 对比用户发送的签名和服务端计算的签名,两者相同则认证通过,否则失败。

Token

Token认证

使用Token认证方式完成认证鉴权时,用户首先需要获取token,在调用接口时增加“X-XXX-Token”到业务接口请求消息头中。

流程

  • 发送请求,获取IAM的Endpoint及消息体中的区域名称。
  • 获取Token。请求响应成功后在响应消息头中包含的“X-YYY-Token”的值即为Token值。
  • 调用业务接口,在请求消息头中增加“X-XXX-Token”,取值为2中获取的Token。

你可能感兴趣的:(公有云API的认证方式:AK/SK 简介)