Client Key
Client Key คือคู่กุญแจเข้ารหัสที่ใช้ลงลายเซ็นโทเคน โดย public key จะเผยแพร่ผ่าน JWKS สำหรับการตรวจสอบ ส่วน private key จะไม่ถูกเปิดเผย
สคีมา
interface ClientKey {
kid: string; // Key ID ที่ใช้ใน JWT headers
credential_id: string; // Client ID (cid...)
jwk: object; // Public JWK
public_key: string; // PEM public key
}
คุณสมบัติ
| Property | Type | คำอธิบาย |
|---|---|---|
kid | string | รหัสคีย์ (kid ใน JWT header) |
credential_id | string | ไคลเอนต์ที่คีย์นี้สังกัด |
jwk | object | รูปแบบ Public JWK |
public_key | string | PEM public key |
รูปแบบ JWKS
public key ที่เปิดเผยผ่าน /.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-----..."
}
ที่เกี่ยวข้อง
- Client - การตั้งค่าไคลเอนต์
- Clients - การจัดการไคลเอนต์
- Backend Integration - การตรวจสอบโทเคน