Client Key
Client Key 是用于签发令牌的加密密钥对。公钥通过 JWKS 公开用于校验,私钥不会被公开。
Schema
interface ClientKey {
kid: string; // Key ID used in JWT headers
credential_id: string; // Client ID (cid...)
jwk: object; // Public JWK
public_key: string; // PEM public key
}
属性
| 属性 | 类型 | 说明 |
|---|---|---|
kid | string | 密钥 ID(JWT Header 中的 kid) |
credential_id | string | 该密钥所属客户端 ID |
jwk | object | 公钥 JWK 表示 |
public_key | string | PEM 格式公钥 |
JWKS 表示
公钥通过 /.well-known/jwks.json 暴露:
{
"keys": [
{
"kty": "RSA",
"use": "sig",
"kid": "key_2kHfPZcN9xW4mE8RtY7vB",
"alg": "RS256",
"n": "0vx7agoebG...",
"e": "AQAB"
}
]
}
密钥轮换
最佳实践:
- 定期轮换密钥
- 过渡期保持 2-4 把激活密钥
- 旧密钥继续保留在 JWKS 中用于令牌校验
示例
{
"kid": "key_2kHfPZcN9xW4mE8RtY7vB",
"credential_id": "cid_1jGePYbM8wV3lD7QsX6uA",
"jwk": { "kty": "RSA", "kid": "key_..." },
"public_key": "-----BEGIN PUBLIC KEY-----..."
}