鉴权V4版本

该鉴权接口采用了AWS V4版本的签名机制。详细签名算法可参考以下链接。

https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html#example-signature-calculations%60

签名验证要点

1、从校验头Authorization中依次解析出生成签名所需各基本信息:

accessKey
dateStamp
regionName
serviceName
SignedHeaders
Signature

2、从请求中获取生成签名所需请求信息(上面解析出的SignedHeaders为参与签名的各请求头名称)。

该步主要获取参与签名请求头对应值,即headerName:headerValue

SignedHeadersValues
httpMethod
queryString

3、按照正向生成V4签名算法流程一步步生成CanonicalRequest、StringToSign、Signature。注意AuthorizationSignature为十六进制小写形式hex

Java版实例

基础信息

属性 取值
accessKey 35nwOnYWqcKvgCAX5MNi (测试验证使用)
secretKey 2Bl4BDUK9kG74pUStxaTJXxYNk1HVUJkJR3TjAr3 (测试验证使用)
x-amz-date 20210422T015559Z
regionName cn-north-1
serviceName xs-transcode

请求信息

  • 接口完整地址:https://vod-api.xstore.ctyun.cn/xstore-transcode/task

  • 接口参数:taskId=0003#45559c3d411843c79410f538a205df7d

  • 请求body为空,hashBody:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

GET /xstore-transcode/task
host:vod-api.xstore.ctyun.cn
x-amz-date:20210422T015559Z
Authorization: SignatureToBeCalculated
x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

生成签名各步结果

1、CanonicalRequest

GET
/xstore-transcode/task
taskId=0003%2345559c3d411843c79410f538a205df7d
host:vod-api.xstore.ctyun.cn
x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date:20210422T015559Z
host;x-amz-content-sha256;x-amz-date
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

2、StringToSign

AWS4-HMAC-SHA256
20210422T015559Z
20210422/cn-north-1/xs-transcode/aws4_request
002512aa3fd5e27993ff5492963f323ae7d651ce7c06c0991e29a95951d50991

3、Signature

53e377e7e2dcc33286c939f7681534762d55dc05cd6a078304b10a7dae6dfca1

4、Authorization

AWS4-HMAC-SHA256 Credential=35nwOnYWqcKvgCAX5MNi/20210422/cn-north-1/xs-transcode/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=53e377e7e2dcc33286c939f7681534762d55dc05cd6a078304b10a7dae6dfca1

URL前缀

以下的 URL 中均省略链接地址 https://vod-api.xstore.ctyun.cn/xstore-vod