Saltar al contenido principal
Auth es un servicio centralizado que proporciona capacidades de autenticación y autorización para las aplicaciones de Lerian Studio. Construido sobre un Proveedor de Identidad (IdP), este servicio ofrece:
  • Flujos de autenticación conformes con OAuth2/OIDC.
  • Capacidades de emisión, validación y renovación de tokens.
  • Recuperación de información de usuario según los estándares OIDC.
  • Aplicación de permisos para recursos.
  • Optimización de rendimiento a través de mecanismos de caché.
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 agrega capacidades de caché 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 usando:
    • Password grant (nombre de usuario/contraseña para usuarios interactivos).
    • Client credentials grant (para autenticación servicio-a-servicio).
  • La solicitud se reenvía al Proveedor de Identidad.
  • Se devuelven el token de acceso, token de renovación y opcionalmente el token de ID.
2

Renovación de token

  • Las aplicaciones cliente usan tokens de renovación para obtener nuevos tokens de acceso.
  • El token de renovación se valida vía el 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 reclamaciones del token para identificar el sujeto.

Flujo de autorización

1

Aplicar acceso

  • El cliente solicita acceso a un recurso con una acción.
  • Se extrae el ID del sujeto del token.
  • El motor de políticas determina si el sujeto tiene permiso.
  • El resultado se almacena en caché para rendimiento.
  • Se devuelve la decisión de autorización.
2

Recuperar políticas

  • El cliente solicita todas las políticas para el usuario autenticado.
  • Se consulta al motor de políticas por todos los recursos y acciones permitidos.
  • Las políticas se devuelven como un mapa de recursos a las acciones permitidas.

Flujo de información de usuario

1

Solicitud de perfil

  • El cliente solicita información del perfil del usuario.
  • Se valida el token de acceso.
  • Los detalles del usuario se recuperan del Proveedor de Identidad.
  • Se devuelve información del usuario conforme con OIDC.

Flujo de cierre de sesión

1

Cierre de sesión de usuario

  • El cliente envía una solicitud de cierre de sesión con sugerencia de token de ID.
  • 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 de identidad segura y control de acceso para aplicaciones de Lerian. Las APIs admiten:
  • Autenticación y gestión del ciclo de vida de tokens.
  • Autorización y aplicación de permisos.
  • Recuperación de información de usuario.
El acceso a las APIs de Auth está asegurado por controles de permisos estrictos. Para detalles técnicos sobre endpoints y uso, consulte la documentación de APIs de Auth.

Estructura de políticas

Las tablas de políticas almacenan permisos usando el siguiente patrón:

Regla de política (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 (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 caché

Auth optimiza el rendimiento y la seguridad aprovechando un sistema de almacenamiento estructurado y mecanismos de caché:
  • Gestión de políticas: Almacena políticas de control de acceso para usuarios y servicios.
  • Caché de introspección de tokens: Almacena en caché los resultados de validación de tokens para reducir verificaciones 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 confiabilidad

Auth se somete a pruebas continuas para mantener la confiabilidad y seguridad. Las pruebas cubren:
  • Flujos de autenticación y validación de tokens.
  • Aplicación de control de acceso.
  • Eficiencia de rendimiento y caché.
Las evaluaciones de seguridad y el monitoreo garantizan el cumplimiento con las mejores prácticas y estándares de seguridad en evolución.