认证鉴权

基本认证

Basic认证是客户端通过明文(Base64编码格式)传输用户名和密码到服务端进行认证

curl -u <operator>:<password> http://fss-<区域>.vhostgo.com/<bucket>/

或者,将用户名和密码按 operator:password 拼接 Base64 编码后加在请求头的 Authorization 字段中:

签名认证

为了避免基本认证中 Base64 编码可逆带来的安全隐患,对象存储提供了签名认证这种更安全的认证方式。它结合请求关键信息和用户身份信息,计算一个消息摘要,作为请求的 Authorization,保证请求的安全。

Rest-API签名认证

对于REST API,认证信息 Authorization 放在 Header 中,

签名计算方法

相关参数说明

参数必选说明
Operator用户名
Method请求方式,如:GET、POST、PUT、HEAD 等
URI请求路径,格式为/bucket/URI
Date请求日期时间,如 Wed, 22 Apr 2020 02:26:58 GMT 或者 2020-04-22 10:26:58
Password密码的 base64 值
Content-MD5请求体的 MD5 值,如果文件太大计算 MD5 不方便或请求体为空,可以为空

举例

请求签名

生成 Signature:

Authorization 签名:

请求 Header:

Form-API签名认证

对于FORM API,认证信息 Authorization 放在HTTP的body中。 签名计算方法

相关参数说明

参数必选说明
Operator用户名
Method请求方式,取值为POST
URI请求路径,格式为/bucket
Date请求日期时间,如 Wed, 22 Apr 2020 02:26:58 GMT 或者 2020-04-22 10:26:58
Password密码的 base64 值
Content-MD5请求体的 MD5 值,如果文件太大计算 MD5 不方便或请求体为空,可以为空
Policy上传参数的Base64 编码,详见 Policy 算法

policy 算法

生成步骤

  1. 将需要保护的上传参数键值对转换为 JSON 字符串
  2. 将第 1 步所得到的字符串进行 Base64 Encode 处理,得到 policy

举例

生成 Policy

生成 Signature

Authorization 签名

完整请求示例