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:
# Nombre del proveedor tal y como aparecerá en la página de inicio de sesión
name: Anjana AWS
# URL del proveedor para autorizar a los usuarios del Portal Anjana (usar variables en la URL)
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}
# URL del proveedor para autorizar a los usuarios de Portuno (usar variables en la URL)
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}
# URL del proveedor para gestionar la creación del token
token-url: https://${security.authentication.oidc.providers.aws.domain}.auth.${security.authentication.oidc.providers.aws.region}.amazoncognito.com/oauth2/token
# Alcance de la autenticación del proveedor
scopes: openid+profile
# 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: GET
# 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: cognito:username
# Tipo de autentificacion según la definicion de Oauth2
workflowType: AUTHORIZATION_CODE
# URL del servidor de autorización a la que llamar para obtener la información del usuario
authorizeServer: https://${security.authentication.oidc.providers.aws.domain}.auth.${security.authentication.oidc.providers.aws.region}.amazoncognito.com/oauth2/userInfo
# Propiedad en la que se recoge el nombre de usuario del servidor de autorización.
userNameProperty: username
# Tipo de proveedor
type: AWS
# Region de AWS IAM, usada para generar las URL de autorización
region: eu-web-1
# Dominio de AWS IAM, usada para generar las URL de autorización
domain: anjana-app-desarrollo
# Identificador del grupo de usuario
poolID: <poolID>
# Clave de acceso del usuario adminitrador usado para recuperar los usuarios
accessKey: <accessKey>
# Contraseña de la clave de acceso del usuario adminitrador usado para recuperar los usuarios
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.