API 认证机制(1) 每次 API 请求均需在 HTTP Header 中携带完整的鉴权信息。认证机制包含两套签名,需同时传入: 业务签名(XHMACSIGNATURE):基于公私钥对请求进行业务级签名验证。 EOP 平台签名(EopAuthorization):天翼云 EOP 平台标准认证签名,基于 AK/SK 与请求信息动态生成。 请求消息头(完整列表) 参数名 是否必填 说明 示例值 ContentType 是 消息体类型 application/json accountid 是 租户 ID tenant001 XAPPCODE 是 应用编码(即AK) yourappcode XREQUESTDATE 是 当前毫秒级时间戳 1713600000000 XHMACSIGNATURE 是 业务签名:使用privateKey对message做 HMACSHA256 后再 Base64 编码 Base64(HMACSHA256(privateKey, message)) ctyuneoprequestid 是 请求流水号,32 位随机 UUID 0ffb9b07d5a84e19b3ce12dfb9705a1d Eopdate 是 请求时间,格式yyyyMMdd'T'HHmmss'Z',使用北京时间(UTC+8),TZ 仅为格式符号 20221107T093029Z EopAuthorization 是 EOP 平台认证签名信息 见下方生成说明 业务签名(XHMACSIGNATURE)生成方法 message 构造格式: java message publicKey + "" + XREQUESTDATE 签名算法(Java 示例): java importcn.hutool.crypto.digest.HMac; importcn.hutool.crypto.SecureUtil; importcn.hutool.core.codec.Base64; String publicKey "yourpublickey";// 从控制台应用管理获取 String privateKey "yourprivatekey";// 从控制台应用管理获取,请勿泄露 long time System.currentTimeMillis();// 当前毫秒时间戳,即 XREQUESTDATE String message publicKey +""+ time; HMac hMac SecureUtil.hmacSha256(privateKey); String xHmacSignature Base64.encode(hMac.digest(message)); // Header 中传入: // XREQUESTDATE: time // XHMACSIGNATURE: xHmacSignature 签名算法(Python 示例): python import hmac import hashlib import base64 import time publickey "yourpublickey" privatekey "yourprivatekey" timestamp str(int(time.time() 1000)) 毫秒时间戳 message publickey +""+ timestamp xhmacsignature base64.b64encode( hmac.new( privatekey.encode("utf8"), message.encode("utf8"), hashlib.sha256 ).digest() ).decode("utf8")
来自: