

AWS Le service de modernisation du mainframe (expérience de l'environnement d'exécution géré) n'est plus ouvert aux nouveaux clients. Pour des fonctionnalités similaires au service de modernisation AWS du mainframe (expérience de l'environnement d'exécution géré), explorez le service de modernisation AWS du mainframe (expérience autogérée). Les clients existants peuvent continuer à utiliser le service normalement. Pour plus d'informations, consultez la section [Modification de la disponibilité de la modernisation du AWS mainframe](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

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.

# Configurer l' OAuth2 authentification Gapwalk avec Keycloak
<a name="ba-runtime-auth-keycloak"></a>

Cette rubrique décrit comment configurer l' OAuth2 authentification pour les applications Gapwalk utilisant Keycloak comme fournisseur d'identité (IdP). Dans ce tutoriel, nous utilisons Keycloak 24.0.0.

## Conditions préalables
<a name="ba-runtime-auth-keycloak-prereq"></a>
+ [Cape à clés](https://www.keycloak.org/)
+ Application Gapwalk

## Configuration de Keycloak
<a name="keycloak-setup"></a>

1. Accédez à votre tableau de bord Keycloak dans votre navigateur Web. Les informations d'identification par défaut sont admin/admin. Accédez à la barre de navigation en haut à gauche et créez un domaine portant le nom**demo**, comme indiqué dans l'image suivante.  
![alt_text](http://docs.aws.amazon.com/fr_fr/m2/latest/userguide/images/ba-runtime-auth-keycloak_2.png)

1. Créez un client portant ce nom**app-demo**.  
![Page de liste des clients avec le bouton Créer un client surligné dans la barre d'outils.](http://docs.aws.amazon.com/fr_fr/m2/latest/userguide/images/ba-runtime-auth-keycloak_3.jpg)

   Remplacez `localhost:8080` par l'adresse de votre application Gapwalk  
![alt_text](http://docs.aws.amazon.com/fr_fr/m2/latest/userguide/images/ba-runtime-auth-keycloak_4.png)  
![alt_text](http://docs.aws.amazon.com/fr_fr/m2/latest/userguide/images/ba-runtime-auth-keycloak_5.png)

1. **Pour obtenir le secret de votre client, choisissez **Clients**, **app-demo**, puis Credentials.**  
![alt_text](http://docs.aws.amazon.com/fr_fr/m2/latest/userguide/images/ba-runtime-auth-keycloak_6.jpg)

1. Choisissez **Clients**, puis Étendue **du client, puis** **Ajouter un mappeur prédéfini**. Choisissez les **rôles du domaine**.  
![alt_text](http://docs.aws.amazon.com/fr_fr/m2/latest/userguide/images/ba-runtime-auth-keycloak_7.jpg)

1. Modifiez votre rôle de domaine avec la configuration illustrée dans l'image suivante.  
![alt_text](http://docs.aws.amazon.com/fr_fr/m2/latest/userguide/images/ba-runtime-auth-keycloak_8.jpg)

1. N'oubliez pas le **nom de demande de jeton** défini. Vous aurez besoin de cette valeur dans la définition des paramètres Gapwalk de la `gapwalk-application.security.claimGroupName` propriété.  
![alt_text](http://docs.aws.amazon.com/fr_fr/m2/latest/userguide/images/ba-runtime-auth-keycloak_9.jpg)

1. Choisissez **les rôles Realms**, puis créez 3 rôles : **SUPER\_ADMIN****ADMIN**, et**USER**. Ces rôles sont ensuite mappés à `ROLE_SUPER_ADMIN``ROLE_ADMIN`, et `ROLE_USER` par l'application Gapwalk pour pouvoir accéder à certains appels REST d'API restreints.  
![alt_text](http://docs.aws.amazon.com/fr_fr/m2/latest/userguide/images/ba-runtime-auth-keycloak_10.jpg)

## Intégrez Keycloak dans l'application Gapwalk
<a name="gapwalk-setup"></a>

Modifiez votre `application-main.yml` comme suit :

```
gapwalk-application.security: enabled
gapwalk-application.security.identity: oauth
gapwalk-application.security.issuerUri: http://<KEYCLOAK_SERVER_HOSTNAME>/realms/<YOUR_REALM_NAME>
gapwalk-application.security.claimGroupName: "keycloak:groups"

gapwalk-application.security.userAttributeName: "preferred_username"
# Use "username" for cognito, 
#     "preferred_username" for keycloak
#      or any other string

spring:
  security:
    oauth2:
      client:
        registration:
          demo:
            client-id: <YOUR_CLIENT_ID>
            client-name: Demo App
            client-secret: <YOUR_CLIENT_SECRET>
            provider: keycloak
            authorization-grant-type: authorization_code
            scope: openid
            redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}"
        provider:
          keycloak:
            issuer-uri: ${gapwalk-application.security.issuerUri}
            authorization-uri: ${gapwalk-application.security.issuerUri}/protocol/openid-connect/auth
            jwk-set-uri: ${gapwalk-application.security.issuerUri}/protocol/openid-connect/certs
            token-uri: ${gapwalk-application.security.issuerUri}/protocol/openid-connect/token
            user-name-attribute: ${gapwalk-application.security.userAttributeName}
      resourceserver:
        jwt:
          jwk-set-uri: ${gapwalk-application.security.issuerUri}/protocol/openid-connect/certs
```

Remplacez{{<KEYCLOAK\_SERVER\_HOSTNAME>}}, {{<YOUR\_REALM\_NAME>}}{{<YOUR\_CLIENT\_ID>}}, et par le nom {{<YOUR\_CLIENT\_SECRET>}} d'hôte de votre serveur Keycloak, votre nom de domaine, votre identifiant client et votre secret client.