- Flujos de autenticación compatibles con OAuth2/OIDC.
- Capacidades de emisión, validación y refresco de tokens.
- Recuperación de información de usuario según los estándares OIDC.
- Aplicación de permisos para recursos.
- Optimización del rendimiento a través de mecanismos de caching.
Flujo de autenticación y autorización
Auth implementa varios flujos clave de autenticación y autorización:
Figura 1. Flujo de Autenticación y Autorización
Flujo de autenticación
- Solicitud de token - Las aplicaciones cliente solicitan tokens de acceso utilizando: - Concesión de contraseña (Password grant) (nombre de usuario/contraseña para usuarios interactivos). - Concesión de credenciales de cliente (Client credentials grant) (para autenticación de servicio a servicio). - La solicitud se reenvía al Proveedor de Identidad. - Se devuelve el token de acceso, el token de refresco y el token ID opcional.
- Refresco de token - Las aplicaciones cliente utilizan tokens de refresco para obtener nuevos tokens de acceso. - El token de refresco se valida a través del Proveedor de Identidad. - Se emite un nuevo token de acceso.
- Validación de token - Los tokens de acceso se validan al acceder a recursos protegidos. - Los resultados se almacenan en caché para optimización del rendimiento. - Se extraen las claims del token para identificar al sujeto.
Flujo de autorización
- Aplicar acceso - El cliente solicita acceso a un recurso con una acción. - El ID del sujeto se extrae del token. - El motor de políticas (policy engine) determina si el sujeto tiene permiso. - El resultado se almacena en caché para el rendimiento. - Se devuelve la decisión de autorización.
- Recuperar políticas - El cliente solicita todas las políticas para el usuario autenticado. - El motor de políticas es consultado para todos los recursos y acciones permitidos. - Las políticas se devuelven como un mapa de recursos a las acciones permitidas.
Flujo de información del usuario
- Solicitud de perfil - El cliente solicita información del perfil de usuario. - El token de acceso es validado. - Los detalles del usuario se recuperan del Proveedor de Identidad. - Se devuelve la información del usuario compatible con OIDC.
Flujo de cierre de sesión (Logout)
- Cierre de sesión del usuario - El cliente envía la solicitud de cierre de sesión con una pista de token ID (ID token hint). - Los tokens se invalidan en el Proveedor de Identidad. - Las entradas de caché se invalidan.
Descripción general de la API
Auth proporciona gestión segura de identidad y control de acceso para las aplicaciones de Lerian. Las APIs soportan:- Autenticación y gestión del ciclo de vida del token.
- Autorización y aplicación de permisos.
- Recuperación de información del usuario.
Estructura de la política
Las tablas de políticas almacenan permisos utilizando el siguiente patrón:Regla de política (Policy rule) (ptype=‘p’):
identity-editor-role
permiso para realizar la acción GET
en el recurso users
.
Asignación de grupo (Group assignment) (ptype=‘g’):
user123
al rol identity-editor-role
.
Almacenamiento de datos y caching
Auth optimiza el rendimiento y la seguridad al aprovechar un sistema de almacenamiento estructurado y mecanismos de caching:- Gestión de políticas: Almacena políticas de control de acceso para usuarios y servicios.
- Caché de introspección de token: Almacena en caché los resultados de la validación de token para reducir comprobaciones redundantes.
- Caché de permisos: Almacena decisiones de autorización para mejorar el tiempo de respuesta.
- Caché de políticas de usuario: Mantiene un mapa de recursos y acciones para un control de acceso eficiente.
Pruebas y fiabilidad
Auth se somete a pruebas continuas para mantener la fiabilidad y la seguridad. Las pruebas cubren:- Flujos de autenticación y validación de tokens.
- Aplicación del control de acceso.
- Rendimiento y eficiencia del caching.