Mientras que la Autenticación verifica la identidad de un usuario para permitirle el acceso ("¿Quién eres?"), el Aprovisionamiento (o Sincronización) es el proceso mediante el cual Anjana Data obtiene y actualiza la información de los usuarios (Nombre, Email, Teléfono, etc.) conectándose directamente al Directorio Corporativo.
Este proceso es fundamental para:
-
Fuente de la Verdad: Mantener la base de datos local alineada con el directorio corporativo.
-
Productividad: Asignar roles o responsabilidades a usuarios que aún no han iniciado sesión.
-
Metadatos: Disponer de información de contacto actualizada para notificaciones y flujos de trabajo.
¿Cómo funciona?
A diferencia del Login (que ocurre en tiempo real), el Aprovisionamiento es un proceso en segundo plano.
-
Conexión: Anjana Data se conecta a la API de gestión administrativa del proveedor.
-
Extracción: Descarga el listado completo de usuarios asignados a la aplicación.
-
Normalización: Convierte los datos propietarios de cada nube al formato estándar de Anjana Data.
-
Persistencia: Crea o actualiza los registros en la base de datos local de Anjana Data.
Nota: En tiempo de ejecución (login, búsqueda de usuarios), Anjana Data no consulta las APIs externas; consulta su base de datos local, que ha sido alimentada por este proceso.
Proveedores soportados
Anjana soporta la sincronización nativa con los siguientes proveedores. Tenga en cuenta que las credenciales necesarias para el aprovisionamiento (APIs de gestión) suelen ser diferentes a las de autenticación (Login).
|
Proveedor |
Tecnología subyacente |
Requisitos clave |
|---|---|---|
|
Microsoft Azure AD |
Microsoft Graph API |
App Registration con permisos |
|
Google Workspace |
Google Directory API |
Service Account con Delegación de Dominio |
|
AWS IAM Identity Center |
AWS Identity Store API |
Access/Secret Keys con permisos |
|
AWS Cognito |
Cognito Identity Provider API |
Usuario IAM con permisos |
|
Auth0 |
Auth0 Management API (Jobs) |
Aplicación M2M con permisos |
|
Okta |
Okta Core API |
API Token de administración (SSWS) |
|
Keycloak |
Keycloak Admin REST API |
Cliente confidencial con cuenta de servicio y rol |
|
LDAP / Active Directory |
Protocolo LDAPv3 |
Usuario de servicio con permisos de lectura ( |
Configuración general
La configuración de aprovisionamiento (excepto LDAP) se centraliza en la sección security.provisioning del fichero application.yml del microservicio Zeus.
Esta configuración es independiente de la sección de autenticación. Puede configurar múltiples orígenes de datos para sincronizar usuarios.
security:
# ===============================================
# SECCIÓN PROVISIÓN (Sincronización de Usuarios)
# ===============================================
provisioning:
providers:
# --- AWS Identity Center ---
aws-iam-ic:
proveedor-aws-sso:
region: "eu-west-1"
identity-store-id: "..."
# --- AWS Cognito ---
aws-cognito:
proveedor-clientes:
user-pool-id: "eu-west-1_xxxx"
access-key: "..."
# --- Auth0 ---
auth0:
proveedor-auth0:
domain: "midominio.auth0.com"
client-id: "..." # App M2M
# --- Keycloak ---
keycloak:
keycloak-corp:
server-url: "https://sso.mi-dominio.com"
realm: "mi-realm"
client-id: "anjana-provisioning"
client-secret: "..."
# --- Otros proveedores ---
# azure-graph: ...
# google: ...
# okta: ...
Excepción: LDAP
Debido a la naturaleza del protocolo LDAP, la configuración de autenticación y aprovisionamiento se realiza de forma conjunta en la sección security.authentication.ldap. No requiere entrada en security.provisioning.
Mapeo de campos personalizado (field-mapping)
Cada proveedor expone los datos de usuario con nombres propios de su API. Anjana los normaliza automáticamente a seis campos estándar:
|
Campo Anjana |
Descripción |
|---|---|
|
|
Identificador de login único. Clave principal del usuario en Anjana. |
|
|
Dirección de correo electrónico. |
|
|
Nombre de pila. |
|
|
Apellido(s). |
|
|
Teléfono de contacto. |
|
|
Cargo o puesto. |
Cada proveedor tiene un mapeo por defecto razonable (documentado en su guía específica). Si en su directorio los datos están en claves distintas —por ejemplo, un atributo personalizado de Cognito, un campo del Profile Editor de Okta o un atributo extendido de Keycloak— puede redefinir el mapeo usando la propiedad field-mapping bajo la configuración del proveedor:
-
Cada campo acepta una lista de claves en orden de prioridad.
-
Anjana usa el primer valor no vacío que encuentre.
-
Solo es necesario incluir los campos que desea cambiar; el resto sigue usando el mapeo por defecto.
security:
provisioning:
providers:
azure-graph:
azure-prod:
tenant-id: "..."
field-mapping:
user-name: ["mail"] # mail en vez de userPrincipalName
phone: ["businessPhones", "mobilePhone"] # empresa → móvil (fallback)
Consulte la guía de cada proveedor para ver la lista completa de claves disponibles y el mapeo por defecto.
Guías de configuración específicas
Seleccione la guía correspondiente para obtener las credenciales de API de su proveedor: