Skip to main content
Auth es el servicio de acceso en tiempo de ejecución de Access Manager. Se sitúa entre tus productos Lerian protegidos y el proveedor de identidad configurado, y da a los productos una sola interfaz para el ciclo de vida del token, la información de usuario, las verificaciones de permisos, el logout y la verificación MFA del inicio de sesión. Usa Auth cuando necesites:
  • solicitar access tokens para usuarios humanos o aplicaciones machine-to-machine.
  • renovar un access token caducado.
  • obtener información de usuario compatible con OIDC.
  • validar si un sujeto puede hacer una acción sobre un recurso.
  • obtener los permisos disponibles para el usuario autenticado.
  • terminar una sesión de usuario.
  • empezar y verificar desafíos MFA durante el inicio de sesión.
Auth delega los datos de identidad al proveedor de identidad y guarda en cache los datos de token, de permisos y relacionados con MFA con Valkey para reducir las llamadas repetidas durante la operación normal.

Flujos principales


Auth admite los flujos de acceso que usan los productos y las integraciones de Lerian.
Flujo conceptual de autenticación y autorización a través del plugin Auth, con la emisión de tokens y las verificaciones de permisos

Figura 1. Flujo de autenticación y autorización

Flujo de autenticación

  1. Solicitud de token
    • Los usuarios humanos se autentican con el grant password.
    • Las integraciones de servicio se autentican con el grant client_credentials.
    • Auth reenvía la solicitud al proveedor de identidad y devuelve el access token, el refresh token y el ID token cuando corresponde.
  2. Renovación de token
    • Los clientes intercambian un refresh token por un access token nuevo.
    • Auth valida el refresh token con el proveedor de identidad antes de emitir el token nuevo.
  3. Validación de token
    • Los productos protegidos validan los Bearer tokens antes de aceptar una solicitud.
    • Auth extrae claims de token confiables para identificar el sujeto y el contexto de tenant.
    • Auth puede guardar en cache los resultados de validación para reducir las llamadas repetidas al proveedor de identidad.

Contexto de organización

Para la autorización, Auth usa el claim owner del JWT cuando está presente y, si no, la organización configurada. El producto que recibe una solicitud autorizada es dueño de su propio contexto de datos de tenant y de su aislamiento del plano de datos. No deduzcas un flujo de resolución de tenant entre productos solo a partir de Auth. Para la configuración de despliegues multi-tenant, sigue la documentación del producto correspondiente y la de multi-tenancy.

Flujo SSO en el navegador

  1. Empieza el flujo
    • El navegador empieza el SSO a través de Auth con una dirección de correo, un proveedor elegible y un code_challenge PKCE S256. Auth resuelve el tenant del lado del servidor a partir del dominio del correo y redirige el navegador al proveedor de identidad upstream.
  2. Maneja el callback
    • El proveedor de identidad redirige el navegador a PLUGIN_AUTH_SSO_CALLBACK_URL. Esta URL de callback absoluta debe estar registrada en la lista de URI de redirección permitidas de la aplicación del proveedor de identidad.
    • Console envía el código de autorización del proveedor, el estado de Auth y el codeVerifier PKCE correspondiente mediante el grant sso_code de Auth. Auth consume el flujo una sola vez, retransmite el código al proveedor de identidad y devuelve el envelope del token.
Antes de emitir tokens, Auth verifica que el correo que devuelve el proveedor de identidad resuelva al tenant que empezó el flujo. Auth rechaza el inicio de sesión si el correo está ausente o resuelve a otro tenant. El rechazo usa el mismo fallo genérico de SSO que las demás retransmisiones rechazadas. Configura el proveedor OAuth y la política de SSO del tenant mediante Identity. La URL de callback de Auth debe coincidir con la URI de redirección permitida de la aplicación.

Flujo de inicio de sesión con MFA

  1. Desafío requerido
    • Cuando se requiere MFA, Auth devuelve un estado de desafío MFA en lugar de completar el inicio de sesión de inmediato.
  2. Empieza la entrega del desafío
    • Para MFA por correo o SMS, el cliente envía el token MFA devuelto y el método seleccionado para pedir la entrega del desafío, y Auth manda el código del desafío por ese método.
    • Una aplicación TOTP genera su código de acceso localmente, sin una solicitud de entrega.
  3. Verificación del desafío
    • El usuario envía el token MFA y un código de acceso o un código de recuperación, no ambos.
    • Auth verifica el desafío y devuelve los access tokens cuando la verificación tiene éxito.
  4. Controles de sesión
    • Los desafíos MFA caducan después del TTL configurado.
    • Los intentos fallidos están limitados para proteger la cuenta de adivinaciones repetidas.

Flujo de autorización

  1. Haz cumplir el acceso
    • Un producto protegido pregunta si el sujeto autenticado puede hacer una acción específica sobre un recurso específico.
    • Auth evalúa la solicitud contra los permisos configurados de Access Manager.
    • Auth puede guardar en cache las decisiones de autorización exitosas por rendimiento.
  2. Obtén los permisos
    • Un cliente puede obtener los permisos disponibles para el usuario autenticado.
    • Auth devuelve los permisos como un mapa de recursos a acciones permitidas.

Flujo de información de usuario

  1. Solicitud de perfil
    • El cliente pide la información del perfil de usuario con un Bearer token.
    • Auth valida el token y obtiene los detalles del usuario del proveedor de identidad.
    • Auth devuelve información de usuario compatible con OIDC.

Flujo de logout

  1. Logout del usuario
    • El cliente manda una solicitud de logout con el hint del ID token.
    • Auth invalida la sesión en el proveedor de identidad.
    • Auth limpia las entradas de cache relacionadas.

Resumen de la API


Auth expone APIs para:
  • solicitar access tokens con password o client_credentials.
  • renovar access tokens.
  • terminar sesiones de usuario.
  • validar permisos de usuario.
  • obtener información de usuario.
  • obtener permisos de usuario.
  • empezar, completar y descubrir flujos SSO en el navegador.
  • empezar un desafío MFA.
  • verificar un desafío MFA de inicio de sesión.
Auth expone tanto puntos de entrada que llevan credenciales como operaciones protegidas. Sigue los requisitos de seguridad documentados para cada endpoint. Para detalles técnicos sobre los endpoints y su uso, consulta la documentación de las APIs de Auth.

Decisiones de permisos


Cuando un producto protegido pregunta a Auth si un sujeto puede hacer una acción sobre un recurso, Auth resuelve el sujeto (un usuario humano o una aplicación machine-to-machine), busca los permisos asociados a él y devuelve una decisión de autorizado o denegado. Para los usuarios humanos, Auth evalúa los permisos incrustados en sus datos de identidad, incluidos los permisos directos de usuario y los roles aplicables. Para las aplicaciones machine-to-machine, los permisos vienen del conjunto de permisos configurado de la aplicación. Auth no inventa permisos. Evalúa los datos que gestiona Identity. Para el modelo completo de sujeto/recurso/acción, los ejemplos y cómo se protegen las rutas, consulta Aplicación en el nivel de producto. Para inspeccionar qué puede alcanzar el sujeto autenticado, usa Obtener permisos de usuario.

Almacenamiento de datos y cache


Auth usa datos de políticas estructurados y entradas de cache para reducir el trabajo repetido:
  • Los datos de políticas almacenan las reglas de control de acceso de usuarios, grupos y aplicaciones.
  • El cache de tokens almacena los resultados de validación de tokens.
  • El cache de permisos almacena las decisiones de autorización exitosas.
  • El cache de permisos de usuario almacena el mapa de recursos y acciones disponibles para un usuario.
  • El cache de MFA almacena el estado temporal del desafío, los contadores de intentos y el estado de dispositivo recordado cuando está configurado.

Pruebas y confiabilidad


Auth pasa por pruebas continuas para mantener la confiabilidad y la seguridad. Las pruebas cubren:
  • Los flujos de autenticación y de validación de tokens.
  • El cumplimiento del control de acceso.
  • El rendimiento y la eficiencia del cache.
Auth también hace evaluaciones de seguridad y monitoreo continuos en estos flujos.