Integraciones
Breadcrumbs

SSO Azure

Modelo de integración

Autenticación (Oauth2)

Anjana Data se integra mediante circuito estándar para “Web apps”, descrito por el fabricante en la siguiente documentación:

https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow

https://docs.microsoft.com/en-us/azure/active-directory/develop/app-sign-in-flow

https://docs.microsoft.com/en-us/azure/active-directory/develop/authentication-flows-app-scenarios


Para la recuperación de información relativa a perfil de usuario y grupos se explota la API Microsoft Graph:

https://docs.microsoft.com/en-us/graph/overview


Es importante considerar que la capacidad de uso de esta API corresponde directamente con la cuota que Microsoft le tiene asignada a la cuenta del cliente con su licencia. De forma general Microsoft limita las peticiones a:



La funcionalidad está directamente embebida en el microservicio de gestión de autenticación Zeus, se habilita y configura mediante el fichero de configuración de dicho microservicio.


Configuración de autenticación

En la propiedad security.authentication se configuran los distintos proveedores de autenticación que se utilizan.

En el caso de Azure es necesario configurar las siguientes propiedades:

YAML
security: 
 authentication:
    oidc:
      providers:  
        azure:
          # Nombre del proveedor tal y como aparecerá en la página de inicio de sesión
          name: Anjana Azure
          # URL del proveedor para autorizar a los usuarios del Portal Anjana (usar variables en la URL)
          authorize-url: https://login.microsoftonline.com/${security.authentication.oidc.providers.azure.tenant-id}/oauth2/v2.0/authorize?client_id=${security.authentication.oidc.providers.azure.client-id}&response_type=code&response_mode=query&scope=${security.authentication.oidc.providers.azure.scopes}&redirect_uri=${security.authentication.oidc.providers.azure.redirect-uri}
          # URL del proveedor para autorizar a los usuarios de Portuno (usar variables en la URL)
          authorize-url-portuno: https://login.microsoftonline.com/${security.authentication.oidc.providers.azure.tenant-id}/oauth2/v2.0/authorize?client_id=${security.authentication.oidc.providers.azure.client-id}&response_type=code&response_mode=query&scope=${security.authentication.oidc.providers.azure.scopes}&redirect_uri=${security.authentication.oidc.providers.azure.redirect-uri-portuno}
          # URL del proveedor para gestionar la creación del token
          token-url: https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token
          # Alcance de la autenticación del proveedor
          scopes: openid profile email user.read
          # Identificador del cliente de autenticación en el proveedor
          client-id: <client-id>
          # Secreto del cliente de autenticación en el proveedor
          client-secret: <client-secret>
          # Método de autenticación del proveedor
          client-authentication-method: POST
          # URI a la que el navegador debe redirigir tras un inicio de sesión exitoso con el proveedor en el Portal Anjana 
          redirect-uri: https://<host>/anjana/authorized
          # URI a la que el navegador debe redirigir tras un inicio de sesión exitoso con el proveedor en el portal administrativo (Portuno)
          redirect-uri-portuno: https://<host>/admin/authorized
          # Campo donde se encuentra el nombre de usuario en el proveedor
          username-claim: preferred_username
          # Tipo de autentificacion según la definicion de Oauth2
          workflowType: IMPLICIT
          # Tipo de proveedor
          type: AZURE
          # URL del alcance, normalmente: https://graph.microsoft.com/.default
          default-scopes: https://graph.microsoft.com/.default
          allowed-host: graph.microsoft.com
          # Identificador del tenant donde se recuperan y autentican los usuarios
          tenant-id: <tenantId>


name: el nombre que se mostrará en la pantalla de login

client-id se encuentra en la pantalla Overview bajo la propiedad “Application (client) id” y client-secret en Manage > Clients & Secrets > Client secrets y al crear uno será el “value”


Gobierno activo

El plugin a desplegar el cual realizará la parte de las tareas de gobierno activo que tengan que provisionar elementos sobre Azure AD es “Tot plugin Azure AD”.

Para la provisión de grupos de usuarios a los que posteriormente se asignan permisos de acceso a recursos de datos gobernados por el producto se explota la API Microsoft Graph:

https://docs.microsoft.com/en-us/graph/overview

Credenciales requeridas

La credencial puede ser única aglutinando los permisos de ambas, pero se recomienda mantenerlas por separado de cara a facilitar la monitorización y auditoría de la actividad ejercida por las mismas.

Autenticación (Oauth2)

La funcionalidad está directamente embebida en el microservicio de gestión de autenticación Zeus, se habilita y configura mediante el fichero de configuración de dicho microservicio.


  • Para la autenticación web se deben configurar las url acorde al nombre de dominio que enrute hasta el frontal de Anjana Data, es necesario dar de alta dos URL, más la de log out:

    • https://<host>:<port>/anjana/authorized

    • https://<host>:<port>/anjana/login

    • https://<host>:<port>/anjana/logout


att_2_for_171868229.png
att_4_for_171868229.png


En base a necesidad ajustar las opciones, generalmente son las siguientes:

att_6_for_171868229.png


Tras ello es necesario crear cliente y secreto que posteriormente será configurado en producto:

att_5_for_171868229.png


Asignar permisos de lectura necesarios para recopilar la información del usuario y sus membresías que serán mapeadas de forma automática a roles y unidades organizativas en el producto:

image-20250808-092352.png

Asignar usuarios a los grupos de Azure AD.

Gobierno activo

El plugin a desplegar el cual realizará la parte de las tareas de gobierno activo que tengan que provisionar elementos sobre Azure AD es “Tot plugin Azure AD”, en su documentación queda descrita la credencial requerida.

Emulación SSO vía Oauth2

El protocolo Oauth2 observa la autenticación transparente en caso de que sea posible, para lo cual solo es necesario redirigir al usuario a https://<host>/provider=<identificador de provider en zeus>, si el usuario ya está logado en dicho provider y las políticas configuradas en dicho provider hacen que no se requiera validar nuevamente la credencial, el usuario será autenticado en Anjana Data de forma totalmente transparente.