信息的獲取
云網平臺獲取
登錄云網門戶,在“控制臺”->“個人中心”->“ 第三方賬號綁定 ”,通過創建或者查看獲取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中也需要增加)