

AWS Il servizio di modernizzazione del mainframe (esperienza Managed Runtime Environment) non è più aperto a nuovi clienti. Per funzionalità simili a AWS Mainframe Modernization Service (esperienza Managed Runtime Environment), esplora AWS Mainframe Modernization Service (Self-Managed Experience). I clienti esistenti possono continuare a utilizzare il servizio normalmente. [Per ulteriori informazioni, consulta AWS Modifica della disponibilità di Mainframe Modernization.](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configura l'autenticazione OAuth2 Gapwalk con Keycloak
<a name="ba-runtime-auth-keycloak"></a>

Questo argomento descrive come configurare OAuth2 l'autenticazione per le applicazioni Gapwalk utilizzando Keycloak come provider di identità (IdP). In questo tutorial utilizziamo Keycloak 24.0.0.

## Prerequisiti
<a name="ba-runtime-auth-keycloak-prereq"></a>
+ [Keycloak](https://www.keycloak.org/)
+ Applicazione Gapwalk

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

1. Vai alla dashboard di Keycloak nel tuo browser web. Le credenziali predefinite sono admin/admin. Vai alla barra di navigazione in alto a sinistra e crea un realm con il nome**demo**, come mostrato nell'immagine seguente.  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/ba-runtime-auth-keycloak_2.png)

1. Crea un client con il nome**app-demo**.  
![\[User interface for creating a new client in an authentication management system.\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/ba-runtime-auth-keycloak_3.jpg)

   `localhost:8080`Sostituiscilo con l'indirizzo della tua applicazione Gapwalk  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/ba-runtime-auth-keycloak_4.png)  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/ba-runtime-auth-keycloak_5.png)

1. **Per rendere segreto il tuo client, scegli **Clients**, poi **app-demo, quindi Credenziali**.**  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/ba-runtime-auth-keycloak_6.jpg)

1. **Scegli **Clienti**, quindi Ambiti **client, quindi Aggiungi mappatore** predefinito.** **Scegli i ruoli del realm.**  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/ba-runtime-auth-keycloak_7.jpg)

1. Modifica il tuo ruolo di realm con la configurazione mostrata nell'immagine seguente.  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/ba-runtime-auth-keycloak_8.jpg)

1. Ricorda il **Token Claim Name** definito. Avrai bisogno di questo valore nella definizione delle impostazioni Gapwalk per la `gapwalk-application.security.claimGroupName` proprietà.  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/ba-runtime-auth-keycloak_9.jpg)

1. Scegli **i ruoli di Realms** e crea 3 ruoli:**SUPER\$1ADMIN**, **ADMIN** e. **USER** Questi ruoli vengono successivamente mappati su `ROLE_SUPER_ADMIN` e `ROLE_USER` dall'applicazione Gapwalk per poter accedere ad alcune chiamate API REST con restrizioni. `ROLE_ADMIN`  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/ba-runtime-auth-keycloak_10.jpg)

## Integra Keycloak nell'applicazione Gapwalk
<a name="gapwalk-setup"></a>

Modifica il tuo come segue: `application-main.yml`

```
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
```

Sostituisci *<KEYCLOAK\$1SERVER\$1HOSTNAME>**<YOUR\$1REALM\$1NAME>*,*<YOUR\$1CLIENT\$1ID>*, e *<YOUR\$1CLIENT\$1SECRET>* con il nome host del server Keycloak, il nome dell'area, l'ID cliente e il segreto del cliente.