Appearance
Seguridad y Buenas Prácticas
Checklist de implementación
- Usar siempre
authorization_code+ PKCE (S256) para login de usuarios. - Validar
stateen callback para prevenir CSRF. - Validar
noncecuando se utiliceid_token. - No almacenar
client_secreten frontend público. - Evitar guardar tokens en
localStoragecuando se pueda usar sesión HttpOnly en backend/BFF. - Aplicar expiración corta para
access_tokeny rotación derefresh_token. - Implementar revocación en logout (
/oauth2/revoke) y cierre en IdP (/auth/logout/client). - Registrar auditoría de eventos de autenticación y errores de autorización.
Validaciones mínimas del token
Si validas tokens localmente:
- Verificar firma con
jwks_uri. - Verificar
issigual al issuer esperado. - Verificar
audcontiene tuclient_id. - Verificar vigencia (
exp,iat) y tolerancia de reloj controlada. - Verificar claims de contexto (
acr,amr) si tu negocio lo exige.
Arquitectura recomendada
Para aplicaciones web:
- Frontend redirige a login.
- Backend/BFF gestiona intercambio de código por tokens.
- Backend mantiene sesión segura y llama APIs de negocio.
Beneficio: reduce exposición de tokens y simplifica controles de seguridad.
Referencias de estándar
- OAuth 2.0: https://www.rfc-editor.org/rfc/rfc6749
- Bearer Token Usage: https://www.rfc-editor.org/rfc/rfc6750
- PKCE: https://www.rfc-editor.org/rfc/rfc7636
- Token Revocation: https://www.rfc-editor.org/rfc/rfc7009
- Token Introspection: https://www.rfc-editor.org/rfc/rfc7662
- JWT: https://www.rfc-editor.org/rfc/rfc7519
- JWK: https://www.rfc-editor.org/rfc/rfc7517
- OpenID Connect Core 1.0: https://openid.net/specs/openid-connect-core-1_0.html
- OpenID Connect Discovery 1.0: https://openid.net/specs/openid-connect-discovery-1_0.html
