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:
-
Límite al Resource Manager https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/request-limits-and-throttling
-
Límite a la API Graph (15 llamadas en lapso de 5 segundos) https://learn.microsoft.com/en-us/azure/governance/resource-graph/concepts/guidance-for-throttled-requests#understand-throttling-headers
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:
security:
authentication:
oidc:
providers:
azure:
name: Anjana Azure
authorize-url: https://login.microsoftonline.com/aef41d72-8720-418a-bb06-9fb98ef04ded/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}
authorize-url-portuno: https://login.microsoftonline.com/aef41d72-8720-418a-bb06-9fb98ef04ded/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}
token-url: https://login.microsoftonline.com/<tenant>/oauth2/v2.0/token
scopes: openid profile email user.read
client-id: <client-id>
client-secret: <client-secret>
client-authentication-method: POST
redirect-uri: https://anjana.client.com:8443/anjana/authorized
redirect-uri-portuno: https://anjana.client.com:8443/admin/authorized
username-claim: preferred_username
workflowType: IMPLICIT
type: AZURE
default-scopes: https://graph.microsoft.com/.default
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
-


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

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

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:

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.