认证鉴权 | 大装置帮助中心
跳到主要内容

认证鉴权

访问凭证

Access Key(访问密钥)是一种用于身份验证和授权的凭据,用于访问和使用各种服务和API。Access Key 通常由用户在用户控制台-安全中心生成和管理。

Access Key 由两部分组成:Access Key ID(访问密钥标识符)和 Secret Access Key(访问密钥密钥)。Access Key ID 是用于标识访问密钥的唯一标识符,而 Secret Access Key 则是用于对请求进行签名和身份验证的机密密钥。

使用 Access Key 进行身份验证可以提供一定的安全性,因为只有持有正确的 Access Key 才能通过身份验证并获得访问权限。Access Key 通常需要妥善保管,避免泄露给未经授权的人员或应用程序。

在使用某些服务或API时,需要在请求中包含 Access Key 相关的信息,以证明身份并获得授权。具体的使用方法和要求取决于所使用的服务或API的提供商。通常,Access Key 相关的信息需要作为请求的一部分,可以通过请求头、请求参数或请求体的形式进行传递。

请求签名

平台提供了安全的签名校验 方式,API访问中需要生成Http Authorization Header, 只有通过签名校验的请求才能到达业务后端。


Authorization: hmac accesskey="{accesskey}", algorithm="{algorithm}", headers="{headers}", signature="{signature}"

参数名称类型说明
accesskeystring用户的access key id
algorithmstringhmac-sha256
headersstring参与签名计算的header, 当前为x-date 和request-line
signaturestring请求签名

计算签名

对HTTP请求进行规范并取得请求的哈希值后,将其与签名算法、签名时间一起组成待签名字符串。


StringToSign =
"x-data: {X-Data}" + \n +
{RequestLine}

伪代码中参数说明如下。

将SK(Secret Access Key)和创建的待签字符串作为加密哈希函数的输入,计算签名,将二进制值转换为base64表示形式。伪代码如下:


signature = Base64Encode(HMAC(Secret Access Key, StringToSign))

Secret Access Key签名密钥
string to sign创建的待签字符串

例子

AccessKey ID: 9eb0a32f-09c6-48da-8feb-34806dd60bdc

AccessKey Secret: secret

X-Date: Thu, 22 Jun 2017 17:15:21 GMT

request-line: GET /requests HTTP/1.1

StringToSign = "x-data: {X-Data}" + \n +{RequestLine}
= "x-date: Thu, 22 Jun 2017 17:15:21 GMT\nGET /requests HTTP/1.1"
signature = base64(hmac_sha256("secret", StringToSign))
= "IXlgb2baHcvPrV7a/C+hKS+E5oHIQXXyz4k4maWws50="