Saltar al contenido principal
  • 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.
Auth sirve como middleware entre las aplicaciones de Lerian y el servidor de autorización subyacente, proporcionando una interfaz unificada para todas las necesidades de autenticación y autorización, mientras añade capacidades de caching para mejorar el rendimiento.

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

  1. 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.
  2. 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.
  3. 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

  1. 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.
  2. 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

  1. 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)

  1. 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.
El acceso a las APIs de Auth está protegido por estrictos controles de permiso. Para obtener detalles técnicos sobre endpoints y uso, consulta la documentación de APIs de Auth.

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’):

p, <role>, <resource>, <action>, allow, <note>
Ejemplo:
p, lerian/identity-editor-role, users, get, allow, lerian/identity-editor-permission
Esto otorga al identity-editor-role permiso para realizar la acción GET en el recurso users.

Asignación de grupo (Group assignment) (ptype=‘g’):

g, <user_id>, <role>
Ejemplo:
g, user123, lerian/identity-editor-role
Esto asigna al usuario con ID 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.
Las evaluaciones de seguridad y la monitorización garantizan el cumplimiento de las mejores prácticas y los estándares de seguridad en evolución.
I