API 认证机制(1) EOP 平台签名(EopAuthorization)生成方法 EopAuthorization是天翼云 EOP 平台的标准认证机制,需按以下四个步骤依次构造。 步骤一:构造待签字符串(sigture) java sigture + "n" + + "n" + 各部分说明: 部分 构造规则 排序后的Header组合列表 将需要签名的Header(必须包含ctyuneoprequestid和eopdate)以headername:headervalue的形式,按 headername 字母表顺序排序,每个 Header 以n结尾拼接在一起 encoded 的 Query 将 URL 的 Query 参数以keyvalue的形式、以&拼接,value 需要 URL encode;无 Query 参数时为空字符串 toHex(SHA256(body)) 对请求 body 做 SHA256 摘要,将结果转十六进制字符串 sigture 示例(Query 为空时): java ctyuneoprequestid:27cfe4dce64045f692ca492ca73e8680neopdate:20220525T160752Znnne3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 sigture 示例(Query 不为空时,如aa1&bb2): java ctyuneoprequestid:27cfe4dce64045f692ca492ca73e8680neopdate:20220525T160930Znnaa1&bb2ne3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 步骤二:构造动态密钥(kdate) 使用eopdate、AK(XAPPCODE)、SK(privateKey)逐步推导动态密钥: 步骤 计算公式 说明 计算 ktime ktime HMACSHA256(eopdate, SK) 以 SK 为密钥,对 eopdate 做 HMAC 计算 kAk kAk HMACSHA256(AK, ktime) 以 ktime 为密钥,对 AK 做 HMAC 计算 kdate kdate HMACSHA256(eopdate的年月日, kAk) 以 kAk 为密钥,对 eopdate 的年月日(如20220525)做 HMAC 其中eopdate格式为yyyyMMddTHHmmssZ(北京时间,Z仅为格式符号)。 步骤三:计算 signature java signature Base64( HMACSHA256(sigture, kdate) ) 步骤四:构造 EopAuthorization java EopAuthorization: {AK} Headers{headerslist} Signature{signature} 部分 说明 {AK} 即 XAPPCODE 的值 Headers{headerslist} 参与签名的 Header 名称以;分隔,按字母表排序,例如Headersctyuneoprequestid;eopdate Signature{signature} 步骤三计算所得的 Base64 签名值 完整示例: java EopAuthorization: 4a4bdc57e06542199b5f98d4cd107be2 Headersctyuneoprequestid;eopdate Signatureb2WEo4nh9ewn6SWOP0ii5g8L0z9CT5gprpDWntlCX9I 注意: AK、Headers、Signature三部分之间以空格 分隔。Eopdate的有效期为15 分钟,超期将导致鉴权失败,请确保请求端时钟准确。
来自: