信息的获取
云网平台获取
登录云网门户,在“控制台”->“个人中心”->“ 第三方账号绑定 ”,通过创建或者查看获取ak,sk。
基本签名流程
ctyun-eop-ak/ctyun-eop-sk基本签名流程
1、待签字符串:使用规范请求和其他信息创建待签字符串;
2、计算密钥:使用HEADER、ctyun-eop-sk、ctyun-eop-ak来创建Hmac算法的密钥;
3、计算签名:使用第三步的密钥和待签字符串在通过hmacsha256来计算签名;
4、签名应用:将生成的签名信息作为请求消息头添加到HTTP请求中。
创建待签名字符串
待签名字符串的构造规则
待签名字符串 = 需要进行签名的Header排序后的组合列表 + "\n" + 排序的query + "\n" + toHex(sha256(原封的body))
排序的header例子:
假设您需要将ctyun-eop-request-id、eop-date、host都要签名,则待签名的header构造出来是:
ctyun-eop-request-id:123456789\neop-date:20210531T100101Z\nhost:1.1.1.1:9080\n
ctyun-eop-request-id、eop-date和host的排序就是这个顺序,如果您加入一个ccad的header;同时这个header也要是进行签名,则待签名的header组合:
ccda:123\n
ctyun-eop-request-id:123456789\neop-date:20210531T100101Z\nhost:1.1.1.1:9080\n
构造动态密钥
发起请求时,需要构造一个eop-date的时间,这个时间的格式是yyyymmddTHHMMSSZ;言简意赅一些,就是年月日T时分秒Z。
1、先是拿您申请来的ctyun-eop-sk作为密钥,eop-date作为数据,算出ktime;
2、拿ktime作为密钥,您申请来的ctyun-eop-ak数据,算出kAk;
3、拿kAk作为密钥,eop-date的年月日值作为数据,算出kdate。
签名应用及示例
由“构造动态秘钥”和“创建待签名字符串”分别的出来的待签名字符串string_sigture、kdate生成出Sigture;
由上得到Eop-Authorization,然后将数据整合成HEADER放在http_client内,发出即可。
http_client所需请求头部如下:
Eop-Authorization: ctyun-eop-ak Header= ctyun-eop-request-id;eop-date Signature=xad01/ada
eop-date:20211221T163614Z
ctyun-eop-request-id: 123456789
(注:若需要进行签名的Header不止默认的ctyun-eop-request-id和eop-date,需要在http_client的请求头部中加上,并且Eop-Authorization中也需要增加)