Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configurar la OAuth2 autenticación de Gapwalk con Amazon Cognito
En este tema se describe cómo configurar la OAuth2 autenticación para las aplicaciones de Gapwalk que utilizan Amazon Cognito como proveedor de identidad (IdP).
Requisitos previos
En este tutorial utilizaremos Amazon Cognito como IdP y PlanetDemo como proyecto modernizado.
Puede utilizar cualquier otro proveedor de identidades externo. La ClientRegistration información debe obtenerse de su IDP y es necesaria para la autenticación de Gapwalk. Para obtener más información, consulte la Guía para desarrolladores de Amazon Cognito.
La información: ClientRegistration
- client-id
-
El ID del ClientRegistration. En nuestro ejemplo será PlanetsDemo.
- client-secret
-
El secreto de tu cliente.
- authorization endpoint
-
El punto final de URI autorización del servidor de autorización.
- token endpoint
-
El punto final URI del token del servidor de autorización.
- jwks endpoint
-
URISe utiliza para obtener la clave JSON web (JWK) que contiene las claves para validar la firma JSON web emitida por el servidor de autorización.
- redirigir URI
-
La dirección URI a la que el servidor de autorización redirige al usuario final si se le concede el acceso.
Configuración de Amazon Cognito
En primer lugar, crearemos y configuraremos un grupo de usuarios y usuarios de Amazon Cognito que utilizaremos con nuestra aplicación Gapwalk implementada con fines de prueba.
nota
Si utilizas otro IdP, puedes saltarte este paso.
Creación de un grupo de usuarios
-
Vaya a Amazon Cognito en AWS Management Console y autentíquese con sus credenciales. AWS
-
Elija Grupos de usuarios.
-
Elija Crear un grupo de usuarios.
-
En Configurar la experiencia de inicio de sesión, mantenga el tipo de proveedor predeterminado Grupo de usuarios de Cognito. Puede elegir una o varias Opciones de inicio de sesión del grupo de usuarios de Cognito; por ahora, elija Nombre de usuario y, a continuación, Siguiente.
-
En Configurar los requisitos de seguridad, mantenga los valores predeterminados y desactive la autenticación multifactorial; para ello, seleccione No yMFA, a continuación, elija Siguiente.
-
Como medida de seguridad, desactive la opción Habilitar el registro automático y, a continuación, seleccione Siguiente.
-
Elija Enviar correo electrónico con Cognito y, a continuación, elija Siguiente.
-
En Integre su aplicación, especifique un nombre para su grupo de usuarios. En Páginas de autenticación alojadas, elija Usar la interfaz de usuario alojada de Cognito.
-
Para simplificar, en Dominio, elija Usar un dominio de Cognito e introduzca un prefijo de dominio; por ejemplo,.
https://planetsdemo
La aplicación de demostración debe añadirse como cliente.-
En Cliente de aplicación inicial, elija Cliente confidencial. Introduzca el nombre de un cliente de aplicación, por ejemplo, y
planetsdemo
, a continuación, elija Generar un secreto de cliente. -
En Permitida la devolución de llamada, URL introduce el campo URL al que se va a redirigir al usuario después de la autenticación. URLDebe terminar en.
/login/oauth2/code/cognito
Por ejemplo, para nuestra aplicación y el backend Gapwalk y las aplicaciones: BAChttp://localhost:8080/bac http://localhost:8080/bac/login/oauth2/code/cognito http://localhost:8080/gapwalk-application http://localhost:8080/gapwalk-application/login/oauth2/code/cognito http://localhost:8080/planetsdemo http://localhost:8080/planetsdemo/login/oauth2/code/cognito
Puedes editarlo más adelante. URL
-
En Permitido cierre de sesión, URLs introduzca la página URL de cierre de sesión a la que desea que Amazon Cognito redirija cuando la aplicación cierre sesión de los usuarios. Por ejemplo, para el backend Gapwalk y las aplicaciones: BAC
http://localhost:8080/bac/logout http://localhost:8080/gapwalk-application/logout http://localhost:8080/planetsdemo/logout
Puedes editarlo más adelante. URL
-
Mantén los valores predeterminados en las secciones de configuración avanzada del cliente de aplicaciones y de permisos de lectura y escritura de atributos.
-
Elija Next (Siguiente).
-
-
En Revisar y crear, compruebe sus opciones y, a continuación, seleccione Crear grupo de usuarios.
Para obtener más información, consulte Creación de un grupo de usuarios.
Creación de usuarios
Como el registro automático está desactivado, cree un usuario de Amazon Cognito. Vaya a la consola de Amazon Cognito. Elija el grupo de usuarios que creó y, a continuación, en Usuarios, elija Crear usuario.
En Información del usuario, elija Enviar una invitación por email, introduzca un nombre de usuario y una dirección de correo electrónico y, a continuación, seleccione Generar una contraseña. Seleccione la opción Crear usuario.
Creación de roles
En la pestaña Grupos, cree 3 grupos (SUPER_ ADMINADMIN, yUSER) y asocie su usuario a uno o más de estos grupos. Posteriormente, la aplicación Gapwalk asigna estos roles a ROLE SUPER ROLE _ ROLE _ADMIN, _ ADMIN y _ USER para permitir el acceso a algunas llamadas restringidas. API REST
Integre Amazon Cognito en la aplicación Gapwalk
Ahora que el grupo de usuarios y los usuarios de Amazon Cognito están preparados, vaya al application-main.yml
archivo de la aplicación modernizada y añada el siguiente código:
gapwalk-application.security: enabled gapwalk-application.security.identity: oauth gapwalk-application.security.issuerUri: https://cognito-idp.<region-id>.amazonaws.com/<pool-id> gapwalk-application.security.domainName: <your-cognito-domain> gapwalk-application.security.localhostWhitelistingEnabled: false spring: security: oauth2: client: registration: cognito: client-id: <client-id> client-name: <client-name> client-secret: <client-secret> provider: cognito authorization-grant-type: authorization_code scope: openid redirect-uri: "<redirect-uri>" provider: cognito: issuer-uri: ${gapwalk-application.security.issuerUri} authorization-uri: ${gapwalk-application.security.domainName}/oauth2/authorize jwk-set-uri: ${gapwalk-application.security.issuerUri}/.well-known/jwks.json token-uri: ${gapwalk-application.security.domainName}/oauth2/token user-name-attribute: username resourceserver: jwt: jwk-set-uri: ${gapwalk-application.security.issuerUri}/.well-known/jwks.json
Reemplace los siguientes marcadores de posición como se indica:
-
Vaya a Amazon Cognito en AWS Management Console y autentíquese con sus credenciales. AWS
-
Elija grupos de usuarios y elija el grupo de usuarios que creó. Puede encontrar su
pool-id
en el ID del grupo de usuarios. -
Elija la integración de aplicaciones, donde podrá encontrar su
your-cognito-domain
y, a continuación, vaya a Clientes y análisis de aplicaciones y elija su aplicación. -
En el cliente de aplicaciones: yourApp puedes encontrar el
client-name
,client-id
, yclient-secret
(Mostrar el secreto del cliente). -
region-id
corresponde al ID de AWS región en el que creó su usuario y grupo de usuarios de Amazon Cognito. Ejemplo:eu-west-3
. -
En
redirect-uri
introduzca el URI que especificó en Allowed URL callback. En nuestro ejemplo, lo eshttp://localhost:8080/planetsdemo/login/oauth2/code/cognito
.
Ahora puedes implementar tu aplicación Gapwalk y usar el usuario creado anteriormente para iniciar sesión en tu aplicación.