更新时间:2017-06-07 13:26
HTTPDNS服务会对每个访问的请求进行身份验证,所以无论使用HTTP还是HTTPS协议提交请求,都需要在请求中包含签名(Signature)信息。服务通过使用Access Key ID
和Access Key Secret
进行对称加密的方法来验证请求的发送者身份。
Access Key ID和Access Key Secret由阿里云官方颁发给访问者(可以通过阿里云官方网站申请和管理),其中Access Key ID用于标识访问者的身份;Access Key Secret是用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密,只有阿里云和用户知道。
用户在访问时,按照下面的方法对请求进行签名处理:
StringToSign=
HTTPMethod + “&” +
percentEncode(“/”) + ”&” +
percentEncode(CanonicalizedQueryString)
Signature
参数添加到请求参数中,即完成对请求签名的过程。以DescribeDomains
为例,签名前的请求URL为:
http://httpdns-api.aliyuncs.com/?Format=XML&AccessKeyId=testid&Action=DescribeDomains&AccountId=100000&SignatureMethod=HMAC-SHA1&RegionId=cn-hangzhou&SignatureNonce=1d1620f8-0b3e-464c-9967-7b54a867945b&SignatureVersion=1.0&Version=2016-02-01&Timestamp=2016-03-29T03%3A33%3A18Z
那么StringToSign就是:
GET&%2F&AccessKeyId%3Dtestid%26AccountId%3D100000%26Action%3DDescribeDomains%26Format%3DXML%26RegionId%3Dcn-hangzhou%26SignatureMethod%3DHMAC-SHA1%26SignatureNonce%3D1d1620f8-0b3e-464c-9967-7b54a867945b%26SignatureVersion%3D1.0%26Timestamp%3D2016-03-29T03%253A33%253A18Z%26Version%3D2016-02-01
假如使用的Access Key Id是“testid”,Access Key Secret是“testsecret”,用于计算HMAC的Key就是“testsecret&”,则计算得到的签名值是:
fHjifLgCEFdF3VMsNW5PCLa1Ds8=
签名后的请求URL为(注意增加了Signature参数):
http://httpdns-api.aliyuncs.com/?Format=XML&AccessKeyId=testid&Action=DescribeDomains&AccountId=100000&SignatureMethod=HMAC-SHA1&RegionId=cn-hangzhou&SignatureNonce=1d1620f8-0b3e-464c-9967-7b54a867945b&SignatureVersion=1.0&Version=2016-02-01&Signature=fHjifLgCEFdF3VMsNW5PCLa1Ds8%3D&Timestamp=2016-03-29T03%3A33%3A18Z
在文档使用中是否遇到以下问题
更多建议
匿名提交