Skip to content
大纲

简介

对API请求进行签名计算

当您将HTTP请求发送到Flyme云对象存储时,您需要对您的请求进行签名计算,以便Flyme云对象存储可以识别您的身份。您将使用Flyme云的访问密钥来进行签名计算,该访问密钥包含访问密钥ID(Access Key Id, 后文简称AK)和秘密访问密钥(Secret Access Key, 后文简称SK).

注意:

仅当您手动创建HTTP请求(RESTful API调用)时,您才需要了解如何对请求进行签名计算。当您使用Flyme云对象存储提供的SDK时,在SDK中已经封装了完整的签名算法,使用者无需自己实现。

何时需要签署API请求?

当您编写代码将HTTP请求发送到Flyme云对象存储时(使用RESTFul API),就需要包含用于签名计算的代码。您可能在如下场景下会直接调用Flyme云对象存储的RESTFul API:

  • 您正在使用的编程语言,或您需要请求的Flyme云对象存储服务,没有对应的Flyme云对象存储SDK。
  • 您希望能够完全控制您的API请求。

在使用Flyme云对象存储SDK时,您不需要进行签名计算,这些SDK中会管理和封装签名算法、处理请求重试和错误处理等。

为什么要进行签名计算?

签名过程会通过以下方式保护您的API请求:

  • 验证请求者的身份
    签名可以确保请求是由某个具有有效访问密钥的用户或服务发起。

  • 保护传输中的数据,防止非法篡改
    若请求在传输过程中遭到非法篡改,由于第三方无法对篡改后的请求进行计算,得到新的认证字符串(Authorization),Flyme云对象存储收到请求后认证字符串匹配将失败,因此身份校验无法通过。

  • 防止重放攻击
    认证字符串(Authorization)都具有指定的有效时间。如请求被截获,第三方无法在有效时间之外重放请求。

为了保护用户的SK信息,Flyme云对象存储不直接使用SK信息,而是使用SK生成SigningKey,同时在SigningKey中包含有效时间范围。这样可以减少用户因SigningKey丢失带来的安全隐患。