You need to enable JavaScript to run this app.
文档中心
多云CDN

多云CDN

复制全文
下载 pdf
调用方法
签名机制
复制全文
下载 pdf
签名机制

如果您使用火山引擎 API 来调用云服务的功能,必须在 API 请求头中包含签名参数。签名参数中需要包含 Signature 签名。

签名机制

Signature 签名是基于密钥(kSigning)和签名字符串(StringToSign)计算出来的。计算逻辑的伪代码如下:

// kSigning:密钥
// StringToSign:签名字符串
// HMAC:指代 HMAC-SHA256
Signature = HexEncode(HMAC(kSigning, StringToSign))

kSigning

kSigning 表示用来计算签名的密钥。要获取 kSigning,必须先从密钥列表页面获取 Secret Access Key。然后使用以下代码生成 kSigning。

kSecret = *Your Secret Access Key*
kDate = HMAC(kSecret, Date)
kRegion = HMAC(kDate, Region)
kService = HMAC(kRegion, Service)
kSigning = HMAC(kService, "request")

StringToSign

StringToSign 表示用来计算签名的签名字符串,包含规范请求的元数据信息。StringToSign 是通过连接以下值生成的:

  • 签名算法。
  • 请求日期。
  • 凭证范围。
  • 规范请求的哈希值。

StringToSign 的伪代码如下:

// Hash 函数使用 SHA256 算法
StringToSign = Algorithm + '\n' + RequestDate + '\n' + CredentialScope + '\n' + HexEncode(Hash(CanonicalRequest))

StringToSign 伪代码中的参数含义如下:

Algorithm
Algorithm 表示签名算法,是一个固定值的字符串。取值为 HMAC-SHA256

RequestDate
RequestDate 表示请求日期,与公共参数 x-date 相同。示例值是20210913T081805Z

CredentialScope
CredentialScope 表示凭证范围。格式如下:

YYYYMMDD/region/service/request

CanonicalRequest

CanonicalRequest 表示规范请求。CanonicalRequest 的伪代码如下:

HTTPRequestMethod + '\n' + CanonicalURI + '\n' + CanonicalQueryString + '\n' + CanonicalHeaders + '\n' + SignedHeaders + '\n' + HexEncode(Hash(RequestPayload))

CanonicalRequest 伪代码中参数的含义如下:

  • HTTPRequestMethod 表示请求方法。该参数的取值是 GET 或 POST。
  • CanonicalURI 表示请求路径。
  • CanonicalQueryString 表示规范的 query string。CanonicalQueryString 的值是通过以下规则生成的:
    • 对所有参数名,在字符级别按升序排序。
  • CanonicalHeaders 表示规范的 headers。CanonicalHeaders 是通过以下步骤生成的:
    1. 将参与签名计算的 headers 的 keys 转化成小写字母。
    2. 在字符级别对 keys 进行升序排序。
    3. 以 key-value 的格式拼接所有的 headers。
    4. 对每个 header 添加换行符(\n)。
  • SignedHeaders 表示 headers 中 key 的列表。这些 keys 是在字符级别升序排序的。
  • HexEncode(Hash(RequestPayload)) 表示一个计算值。该计算值是通过对请求体中 payload 的内容应用 SHA256 哈希算法计算得到的。

示例代码

在示例代码中,我们调用 requestMCDN 函数进行加密和发起请求,并输出请求的结果。这里我们以调用 DescribeContentQuota API 为例,获取在多云CDN服务中某个账号 ID 的刷新与预热任务的配额。

最近更新时间:2024.07.01 20:45:30
这个页面对您有帮助吗?
有用
有用
无用
无用