认证鉴权 构造动态密钥 发起请求时,需要构造一个eopdate的时间,这个时间的格式是yyyymmddTHHMMSSZ。言简意赅一些,就是年月日T时分秒Z。 1. 先是拿你申请来的ctyuneopsk作为密钥,eopdate作为数据,算出ktime。 2. 拿ktime作为密钥,你申请来的ctyuneopak数据,算出kAk。 3. 拿kAk作为密钥,eopdate的年月日值作为数据,算出kdate。 eopdate yyyymmddTHHMMSSZ(20211221T163614Z)(年月日T时分秒Z) Ktime 使用ctyuneopsk作为密钥,eopdate作为数据,算出ktime;Ktime hmacSha256(ctyuneopsk, eopdate) kAk 使用ktime作为密钥,你申请来的ctyuneopak数据,算出kAk;kAk hmacsha256(ktime,ctyuneopak) kdate 使用kAk作为密钥,eopdate的年月日值作为数据;算出kdate;kdate hmacsha256(kAk, eopdate) 签名应用及示例 由“构造动态密钥”和“创建待签名字符串”分别得出来的待签名字符串stringsignature、kdate生成出Signature。 Signature 待签名字符串stringsignature、kdate;再根据hmacsha256(kdate,stringsignature)得出的结果,再将结果进行base64编码得出Signature EopAuthorization {ctyuneopak} headers你构造待签名字符串时的header排序 Signature{Signature}(ctyuneopak后及Signature前都有一个空格)header排序以分号”;”拼接例子:你待签名的字符串header顺序是 eopdate和host;那么你加到header里的值就是EopAuthorization: {ctyuneopak} headerseopdate;host Signaturexad01/ada 由上得到EopAuthorization,然后将数据整合成header放在httpclient内,发出即可。 httpclient所需请求头部如下: EopAuthorization: ctyuneopak headersctyuneoprequestid;eopdate Signaturexad01/ada eopdate:20211221T163614Z ctyuneoprequestid: 123456789 注意 若需要进行签名的header不止默认的ctyuneoprequestid和eopdate,需要在httpclient的请求头部中加上,并且EopAuthorization中也需要增加。