Integraciones

Aprovisionamiento de usuarios

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:

  1. Fuente de la Verdad: Mantener la base de datos local alineada con el directorio corporativo.

  2. Productividad: Asignar roles o responsabilidades a usuarios que aún no han iniciado sesión.

  3. 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.

  1. Conexión: Anjana Data se conecta a la API de gestión administrativa del proveedor.

  2. Extracción: Descarga el listado completo de usuarios asignados a la aplicación.

  3. Normalización: Convierte los datos propietarios de cada nube al formato estándar de Anjana Data.

  4. 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 User.Read.All

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 identitystore:DescribeUser

AWS Cognito

Cognito Identity Provider API

Usuario IAM con permisos cognito-idp:ListUsers

Auth0

Auth0 Management API (Jobs)

Aplicación M2M con permisos read:users

Okta

Okta Core API

API Token de administración (SSWS)

Keycloak

Keycloak Admin REST API

Cliente confidencial con cuenta de servicio y rol view-users en realm-management

LDAP / Active Directory

Protocolo LDAPv3

Usuario de servicio con permisos de lectura (bind)


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.

YAML
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

userName

Identificador de login único. Clave principal del usuario en Anjana.

email

Dirección de correo electrónico.

firstName

Nombre de pila.

lastName

Apellido(s).

phone

Teléfono de contacto.

title

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.

YAML
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: