SKILL.md
apikeymanagement
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 apigatewayagent 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:
apikeys(keyhash, clientid, scopes, createdat, expires_at). - El cliente envía la key en header:
X-API-Key: <key>. - Nginx valida contra Redis (cache de keys activas):
redis.sismember('activeapikeys', 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.