api_key_management
SKILL.md
api_key_management
Gestión de API Keys para autenticación de clientes server-to-server (backends de terceros que integran el sistema KYC). Complementa JWT para clientes móviles/web.
When to use
Usar en el api_gateway_agent para autenticar peticiones de clientes B2B que integran la API de verificación. Los clientes móviles/web usan JWT; los backends externos usan API Keys.
Instructions
- Generar API Keys con
secrets.token_urlsafe(32)— mínimo 256 bits de entropía. - Almacenar hash SHA-256 de la key en PostgreSQL:
api_keys(key_hash, client_id, scopes, created_at, expires_at). - El cliente envía la key en header:
X-API-Key: <key>. - Nginx valida contra Redis (cache de keys activas):
redis.sismember('active_api_keys', sha256(key)). - Implementar rate limiting por API Key además de por IP.
- Rotación: emitir nueva key, período de gracia con ambas activas, revocar la antigua.
- Auditar todos los accesos por API Key.
Notes
- Nunca loguear la API Key completa; solo los últimos 4 caracteres para identificación.
- Implementar scopes por key:
verify,status,admin. - Las keys expiradas se revocan automáticamente; el cliente debe renovar proactivamente.