Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Cette rubrique explique comment configurer l'OAuth2authentification pour les applications Gapwalk utilisant Amazon Cognito en tant que fournisseur d'identité (IdP).
Prérequis
Dans ce didacticiel, nous utiliserons Amazon Cognito comme IdP et PlanetDemo comme projet modernisé.
Vous pouvez utiliser n'importe quel autre fournisseur d'identité externe. Les ClientRegistration informations doivent être obtenues auprès de votre IdP et sont requises pour l'authentification Gapwalk. Pour plus d'informations, consultez le Guide du développeur Amazon Cognito.
Les ClientRegistration informations :
- identificateur du client
-
L'identifiant du ClientRegistration. Dans notre exemple, ce sera le cas PlanetsDemo.
- client-secret
-
Le secret de votre client.
- point final d'autorisation
-
Point de terminaison d'autorisation URI pour le serveur d'autorisation.
- point de terminaison symbolique
-
Point de terminaison du jeton URI pour le serveur d'autorisation.
- point de terminaison jwks
-
URIUtilisé pour obtenir la clé JSON Web (JWK) qui contient les clés permettant de valider la signature JSON Web émise par le serveur d'autorisation.
- rediriger URI
-
Le URI vers lequel le serveur d'autorisation redirige l'utilisateur final si l'accès est accordé.
Configuration d'Amazon Cognito
Nous allons d'abord créer et configurer un groupe d'utilisateurs et un utilisateur Amazon Cognito que nous utiliserons avec notre application Gapwalk déployée à des fins de test.
Note
Si vous utilisez un autre IdP, vous pouvez ignorer cette étape.
Création d'un groupe d'utilisateurs
-
Accédez à Amazon Cognito dans le AWS Management Console et authentifiez-vous à l'aide de vos informations d'identification. AWS
-
Choisissez Groupes d’utilisateurs.
-
Sélectionnez Create a user pool.
-
Dans Configurer l'expérience de connexion, conservez le type de fournisseur par défaut du groupe d'utilisateurs Cognito. Vous pouvez choisir une ou plusieurs options de connexion au groupe d'utilisateurs de Cognito ; pour l'instant, choisissez Nom d'utilisateur, puis Suivant.
-
Dans Configurer les exigences de sécurité, conservez les valeurs par défaut et désactivez l'authentification multifactorielle en choisissant Non MFA, puis en choisissant Suivant.
-
Par mesure de sécurité, désactivez Activer l'enregistrement automatique, puis choisissez Suivant.
-
Choisissez Envoyer un e-mail avec Cognito, puis cliquez sur Suivant.
-
Dans Intégrer votre application, spécifiez le nom de votre groupe d'utilisateurs. Dans les pages d'authentification hébergées, choisissez Utiliser l'interface utilisateur hébergée de Cognito.
-
Pour plus de simplicité, dans Domaine, choisissez Utiliser un domaine Cognito et entrez un préfixe de domaine, par exemple,.
https://planetsdemo
L'application de démonstration doit être ajoutée en tant que client.-
Dans Client d'application initial, sélectionnez Client confidentiel. Entrez un nom de client d'application, tel que
planetsdemo
, puis choisissez Generate a client secret. -
Dans Rappel autorisé, URL entrez le URL vers lequel rediriger l'utilisateur après l'authentification. URLIl faut en finir avec
/login/oauth2/code/cognito
. Par exemple, pour notre application et notre backend Gapwalk et nos applications : 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
Vous pourrez les modifier URL ultérieurement.
-
Dans Déconnexion autorisée, URLs saisissez la page URL de déconnexion vers laquelle vous souhaitez qu'Amazon Cognito redirige lorsque votre application déconnecte les utilisateurs. Par exemple, pour le backend Gapwalk et les applications : BAC
http://localhost:8080/bac/logout http://localhost:8080/gapwalk-application/logout http://localhost:8080/planetsdemo/logout
Vous pourrez les modifier URL ultérieurement.
-
Conservez les valeurs par défaut dans les sections Paramètres avancés du client de l'application et Autorisations de lecture et d'écriture des attributs.
-
Choisissez Suivant.
-
-
Dans Révision et création, vérifiez vos choix, puis choisissez Créer un groupe d'utilisateurs.
Pour plus d'informations, voir Création d'un groupe d'utilisateurs.
Création d'utilisateurs
L'enregistrement automatique étant désactivé, créez un utilisateur Amazon Cognito. Accédez à Amazon Cognito dans le. AWS Management Console Choisissez le groupe d'utilisateurs que vous avez créé, puis dans Utilisateurs, choisissez Créer un utilisateur.
Dans Informations utilisateur, choisissez Envoyer une invitation par e-mail, entrez un nom d'utilisateur et une adresse e-mail, puis choisissez Générer un mot de passe. Choisissez Create user (Créer un utilisateur).
Création de rôles
Dans l'onglet Groupes, créez 3 groupes (SUPER_ ADMINADMIN, etUSER) et associez votre utilisateur à un ou plusieurs de ces groupes. Ces rôles sont ensuite mappés à ROLE _ _ADMIN, SUPER _ ADMIN et ROLE ROLE _ USER par l'application Gapwalk pour permettre d'accéder à certains appels restreints. API REST
Intégrer Amazon Cognito dans l'application Gapwalk
Maintenant que votre groupe d'utilisateurs et vos utilisateurs Amazon Cognito sont prêts, accédez au application-main.yml
fichier de votre application modernisée et ajoutez le code suivant :
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
Remplacez les espaces réservés suivants comme décrit :
-
Accédez à Amazon Cognito dans le AWS Management Console et authentifiez-vous à l'aide de vos informations d'identification. AWS
-
Choisissez Groupes d'utilisateurs et choisissez le groupe d'utilisateurs que vous avez créé. Vous pouvez trouver votre
pool-id
dans ID du groupe d'utilisateurs. -
Choisissez l'intégration d'applications où vous trouverez votre
your-cognito-domain
, puis accédez à Clients et analyses de l'application et choisissez votre application. -
Dans le client de l'application : yourApp vous pouvez trouver le
client-name
,client-id
, etclient-secret
(Afficher le secret du client). -
region-id
correspond à l'ID de AWS région dans lequel vous avez créé votre utilisateur et votre groupe d'utilisateurs Amazon Cognito. Exemple:eu-west-3
. -
Dans
redirect-uri
entrez celui URI que vous avez spécifié pour le rappel URL autorisé. Dans notre exemple, c'est le cashttp://localhost:8080/planetsdemo/login/oauth2/code/cognito
.
Vous pouvez désormais déployer votre application Gapwalk et utiliser l'utilisateur créé précédemment pour vous connecter à votre application.