Modelo de integración
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.
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 AWS es necesario configurar las siguientes propiedades:
security:
authentication:
oidc:
providers:
aws:
name: Anjana AWS
authorize-url: https://${security.authentication.oidc.providers.aws.domain}.auth.${security.authentication.oidc.providers.aws.region}.amazoncognito.com/login?response_type=code&client_id=${security.authentication.oidc.providers.aws.client-id}&redirect_uri=${security.authentication.oidc.providers.aws.redirect-uri}&state=STATE&scope=${security.authentication.oidc.providers.aws.scopes}
authorize-url-portuno: https://${security.authentication.oidc.providers.aws.domain}.auth.${security.authentication.oidc.providers.aws.region}.amazoncognito.com/login?response_type=code&client_id=${security.authentication.oidc.providers.aws.client-id}&redirect_uri=${security.authentication.oidc.providers.aws.redirect-uri-portuno}&state=STATE&scope=${security.authentication.oidc.providers.aws.scopes}
token-url: https://${security.authentication.oidc.providers.aws.domain}.auth.${security.authentication.oidc.providers.aws.region}.amazoncognito.com/oauth2/token
scopes: openid+profile
client-id: <client-id>
client-secret: <client-secret>
client-authentication-method: GET
redirect-uri: https://url.anjanadata.com/anjana/authorized
redirect-uri-portuno: https://url.anjanadata.com/admin/authorized
username-claim: cognito:username
workflowType: AUTHORIZATION_CODE
authorizeServer: https://${security.authentication.oidc.providers.aws.domain}.auth.${security.authentication.oidc.providers.aws.region}.amazoncognito.com/oauth2/userInfo
userNameProperty: username
type: AWS
region: eu-web-1
domain: anjana-app-desarrollo
poolID: <poolID>
accessKey: <accessKey>
secretKey: <secretKey>
Gobierno activo
El plugin a desplegar el cual realizará la parte de las tareas de gobierno activo que tengan que provisionar elementos sobre AWS es “Tot plugin AWS IAM”.
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
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.
Es necesario registrar un grupo de usuarios(User Pool) en el servicio Amazon Cognito para aplicaciones OAuth2, habrá que darle un nombre.
Tras la creación del grupos de usuarios es necesario hacer más configuraciones en el apartado “Clientes de aplicación” y dentro del cliente que se ha creado rescatar la siguiente configuración:
-
ID de cliente
-
Secreto de cliente
Además habrá que configurar una Página de inicio de sesión y configurar lo siguiente:
-
las url acorde al nombre de dominio que enrute hasta el frontal de Anjana Data, es necesario dar de alta:
-
URL de devolución de llamadas:
-
https://<host>/authorized
-
https://<host>/login
-
https://<host>/configpanel/authorized
-
https://<host>/configpanel/login
-
-
URL de cierre de sesión
-
https://<host>/logout
-
https://<host>/configpanel/logout
-
-
-
Tipo de concesión OAuth2
-
Aquí el tipo de flujo que más se desee
-
Por último, en el apartado de Creación de marca / Dominio se debe editar el dominio de Cognito, que vendrá con una concatenación de región y un hash y rellenar con un nombre identificativo en minúsculas y sin caracteres especiales como espacios (es una URL).
Gobierno activo
El plugin a desplegar el cual realizará la parte de las tareas de gobierno activo que tengan que provisionar elementos sobre AWS es “Tot plugin AWS IAM”, 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.