Integraciones
Breadcrumbs

SSO AWS

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.