Saltar al contenido principal
Version: 0.58.0-rc.42

Autenticación para Desarrollo Local

Esta guía cubre cómo funciona la autenticación en el entorno de desarrollo local, incluyendo la configuración de Keycloak y los procedimientos de inicio de sesión.

Configuración de Keycloak

Keycloak se ejecuta en http://localhost:8081 y se configura automáticamente con importaciones de realm cuando ejecutas make start-deps.

Consola de Administración de Keycloak

Realms

RealmPropósitoUsado por
internalUsuarios administrativosPanel de Administración
customerClientes del bancoClientes externos de clientes, API cliente-servidor

Las definiciones de realm se almacenan en dev/keycloak/ y se importan automáticamente al iniciar.

Inicio de Sesión en el Panel de Administración

  1. Navega a http://admin.localhost:4455
  2. Serás redirigido a Keycloak
  3. Inicia sesión con: admin@galoy.io
  4. El panel de administración utiliza el realm internal de Keycloak con OIDC Code Flow

Inicio de Sesión de la API de Cliente

El banco ya no proporciona un frontend web orientado al cliente dentro del repositorio. El servidor de clientes (puerto 5254) está expuesto en http://app.localhost:4455/graphql para:

  • Clientes de clientes externos que gestionan su propio inicio de sesión OIDC contra el realm customer de Keycloak. El cliente de referencia es lana-mobile-demo — si cambias el realm customer, el esquema del servidor de clientes o la ruta de Oathkeeper app.localhost, verifica que esa demostración siga funcionando.
  • Pruebas Bats, que utilizan el flujo de concesión directa de desarrollo (contraseña) para obtener un token de acceso de Keycloak — consulta get_customer_access_token en bats/helpers.bash.

Flujo de Autenticación

Cómo Funciona Oathkeeper

Oathkeeper se encuentra en el puerto 4455 y maneja toda la autenticación:

  1. Recibe solicitudes entrantes con tokens JWT Bearer
  2. Valida la firma JWT contra el endpoint JWKS de Keycloak
  3. Emite un JWT interno con audiencia específica de ruta y sujeto de usuario
  4. Redirige la solicitud al servicio upstream apropiado (admin-server o customer-server)

Los servidores backend solo aceptan JWT internos de Oathkeeper — verifican usando el JWKS de Oathkeeper y comprueban la declaración de audiencia.

Duración de Tokens (Desarrollo)

TokenDuración
Token de acceso5 minutos
Token de actualización30 minutos
Sesión8 horas