API 认证机制
更新时间 2026-05-20 14:20:26
最近更新时间: 2026-05-20 14:20:26
每次 API 请求均需在 HTTP Header 中携带完整的鉴权信息。认证机制包含两套签名,需同时传入:
业务签名(X-HMAC-SIGNATURE):基于公私钥对请求进行业务级签名验证。
EOP 平台签名(Eop-Authorization):天翼云 EOP 平台标准认证签名,基于 AK/SK 与请求信息动态生成。
请求消息头(完整列表)
| 参数名 | 是否必填 | 说明 | 示例值 |
|---|---|---|---|
| Content-Type | 是 | 消息体类型 | application/json |
| accountid | 是 | 租户 ID | tenant001 |
| X-APP-CODE | 是 | 应用编码(即AK) | your-app-code |
| X-REQUEST-DATE | 是 | 当前毫秒级时间戳 | 1713600000000 |
| X-HMAC-SIGNATURE | 是 | 业务签名:使用privateKey对message做 HMAC-SHA256 后再 Base64 编码 | Base64(HMAC_SHA256(privateKey, message)) |
| ctyun-eop-request-id | 是 | 请求流水号,32 位随机 UUID | 0ffb9b07-d5a8-4e19-b3ce-12dfb9705a1d |
| Eop-date | 是 | 请求时间,格式yyyyMMdd'T'HHmmss'Z',使用北京时间(UTC+8),TZ 仅为格式符号 | 20221107T093029Z |
| Eop-Authorization | 是 | EOP 平台认证签名信息 | 见下方生成说明 |
业务签名(X-HMAC-SIGNATURE)生成方法
message 构造格式:
message = publicKey + "|" + X-REQUEST-DATE签名算法(Java 示例):
importcn.hutool.crypto.digest.HMac;
importcn.hutool.crypto.SecureUtil;
importcn.hutool.core.codec.Base64;
String publicKey ="your-public-key";// 从控制台应用管理获取
String privateKey ="your-private-key";// 从控制台应用管理获取,请勿泄露
long time =System.currentTimeMillis();// 当前毫秒时间戳,即 X-REQUEST-DATE
String message = publicKey +"|"+ time;
HMac hMac = SecureUtil.hmacSha256(privateKey);
String xHmacSignature = Base64.encode(hMac.digest(message));
// Header 中传入:
// X-REQUEST-DATE: time
// X-HMAC-SIGNATURE: xHmacSignature签名算法(Python 示例):
import hmac
import hashlib
import base64
import time
public_key ="your-public-key"
private_key ="your-private-key"
timestamp =str(int(time.time() *1000))# 毫秒时间戳
message = public_key +"|"+ timestamp
x_hmac_signature = base64.b64encode(
hmac.new(
private_key.encode("utf-8"),
message.encode("utf-8"),
hashlib.sha256
).digest()
).decode("utf-8")EOP 平台签名(Eop-Authorization)生成方法
参考链接:https://eop.ctyun.cn/ebp/ctapiDocument/search?sid=224&api=%u6784%u9020%u8BF7%u6C42&data=267&vid=352