Este módulo permite sincronizar usuarios desde Auth0 Identity Cloud.
El proceso se realiza mediante una aplicación Machine-to-Machine (M2M) autorizada para consultar la API de gestión. Es eficiente para grandes bases de usuarios gracias a trabajos de exportación asíncronos.
Parte 1: Configuración en Auth0 Dashboard
Para acceder a la API de gestión, debemos crear una aplicación "máquina" específica para Anjana.
Paso 1: Crear aplicación M2M
-
Inicie sesión en su panel de administración de Auth0.
-
Vaya a Applications > Applications.
-
Haga clic en Create Application.
-
Asigne un nombre (ej.
Anjana Provisioning Service). -
Seleccione el tipo Machine to Machine Applications.
-
Haga clic en Create.
Paso 2: Autorizar la Management API
Después de crear la app, Auth0 le preguntará qué API desea autorizar.
-
En el desplegable "Select an API", elija Auth0 Management API.
-
En la lista de permisos (Scopes), busque y seleccione:
-
read:users(Permite leer usuarios y crear trabajos de exportación).
-
-
Haga clic en Authorize.
Paso 3: Obtener credenciales
-
Una vez autorizada, vaya a la pestaña Settings de la aplicación creada.
-
Copie los siguientes valores:
-
Domain: (ej.
dev-xyz.us.auth0.com). -
Client ID.
-
Client Secret.
-
Parte 2: Configuración en application.yml del microservicio Zeus
Edite el fichero de configuración de Anjana e incluya los datos en la sección security.provisioning.providers.auth0.
security:
provisioning:
providers:
auth0:
# Clave única para este origen de datos (ej: auth0-main-tenant)
auth0-main-tenant:
# Dominio de su tenant (sin https://)
domain: "dev-xyz.us.auth0.com"
# Client ID de la App M2M (Paso 3)
client-id: "A1b2C3d4..."
# Client Secret de la App M2M (Paso 3)
client-secret: "secret_value_..."
Resumen de propiedades
|
Propiedad YAML |
Descripción |
Origen en Auth0 |
|
|
Dominio del tenant. |
Applications > Settings > Domain |
|
|
Identificador de la App M2M. |
Applications > Settings > Client ID |
|
|
Secreto de la App M2M. |
Applications > Settings > Client Secret |
Mapeo de campos personalizado (field-mapping)
Anjana incluye un mapeo por defecto que cubre los casos habituales. Puede sobreescribir cualquier campo indicando la clave del perfil Auth0 de la que debe leer el valor. Las claves son listas en orden de prioridad: se usa el primer valor no vacío.
Los metadatos del usuario (user_metadata y app_metadata) se exponen con el prefijo user_metadata. y app_metadata. respectivamente. Por ejemplo, si tiene user_metadata.department, puede referenciarlo directamente en field-mapping.
Mapeo por defecto
|
Campo Anjana |
Claves por defecto (orden de prioridad) |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Campos disponibles
|
Clave |
Descripción |
|---|---|
|
|
Identificador único del usuario en Auth0 (ej. |
|
|
Nombre de usuario (solo disponible si el User Pool tiene usernames habilitados). |
|
|
Dirección de correo electrónico. |
|
|
Nombre de pila. |
|
|
Apellidos. |
|
|
Nombre completo. |
|
|
Apodo. |
|
|
URL del avatar del usuario. |
|
|
Número de teléfono. |
|
|
Cualquier clave de |
|
|
Cualquier clave de |
Ejemplo de configuración
security:
provisioning:
providers:
auth0:
auth0-main-tenant:
domain: "dev-xyz.us.auth0.com"
client-id: "..."
client-secret: "..."
field-mapping:
# Usar given_name; si está vacío, usar name completo
first-name: ["given_name", "name"]
# Leer cargo de user_metadata.position, con fallback a user_metadata.title
title: ["user_metadata.position", "user_metadata.title"]
# Teléfono directo o desde metadatos
phone: ["phone_number", "user_metadata.phone_number"]