

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' OAuth2 autenticazione Gapwalk con Amazon Cognito
<a name="ba-runtime-auth-cognito"></a>

Questo argomento descrive come configurare OAuth2 l'autenticazione per le applicazioni Gapwalk utilizzando Amazon Cognito come provider di identità (IdP).

## Prerequisiti
<a name="ba-runtime-auth-cognito-prereq"></a>

In questo tutorial utilizzeremo Amazon Cognito come IdP e PlanetDemo come progetto modernizzato.

Puoi utilizzare qualsiasi altro provider di identità esterno. Le ClientRegistration informazioni devono essere ottenute dal tuo IdP e sono necessarie per l'autenticazione di Gapwalk. Per ulteriori informazioni, consulta la [Guida per sviluppatori di Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/) .

**Le informazioni: ClientRegistration **

client-id  
L'ID del ClientRegistration. Nel nostro esempio lo sarà. PlanetsDemo

segreto del cliente  
Il segreto del tuo cliente.

endpoint di autorizzazione  
L'URI dell'endpoint di autorizzazione per il server di autorizzazione.

endpoint del token  
L'URI dell'endpoint del token per il server di autorizzazione.

endpoint jwks  
L'URI utilizzato per ottenere la chiave Web JSON (JWK) che contiene le chiavi per la convalida della firma web JSON emessa dal server di autorizzazione.

URI di reindirizzamento  
L'URI a cui il server di autorizzazione reindirizza l'utente finale se l'accesso viene concesso.

## Configurazione di Amazon Cognito
<a name="cog-setup"></a>

Per prima cosa creeremo e configureremo un pool di utenti e utenti Amazon Cognito che utilizzeremo con la nostra applicazione Gapwalk distribuita a scopo di test.

**Nota**  
Se utilizzi un altro IdP, puoi saltare questo passaggio.

**Crea un pool di utenti**

1. Accedi ad Amazon Cognito in Console di gestione AWS ed esegui l'autenticazione utilizzando le tue credenziali. AWS 

1. Scegli **User Pools** (Pool di utenti).

1. Scegli **Create a User Pool (Crea un bacino d'utenza)**.

1. In **Configura l'esperienza di accesso**, mantieni il tipo di provider predefinito del pool di **utenti Cognito**. **Puoi scegliere una o più **opzioni di accesso al pool di utenti di Cognito**; per ora, scegli **Nome utente**, quindi scegli Avanti.**  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/cog-auth-provider.png)

1. **In **Configura i requisiti di sicurezza**, mantieni le impostazioni predefinite e disabilita **l'autenticazione a più fattori** scegliendo Nessuna **MFA**, quindi scegli Avanti.**  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/cog-sec-requirements.png)

1. **Come misura di sicurezza, disattiva **Abilita l'autoregistrazione**, quindi scegli Avanti.**  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/cog-config-sign-up.png)

1. **Scegli **Invia email con Cognito**, quindi scegli Avanti.**  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/cog-email.png)

1. In **Integra la tua app**, specifica un nome per il tuo pool di utenti. Nelle **pagine di autenticazione ospitate**, scegli **Usa l'interfaccia utente ospitata da Cognito**.  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/cog-domain.png)

1. Per semplicità, in **Dominio**, scegli **Usa un dominio Cognito** e inserisci un prefisso di dominio, ad esempio. `https://planetsdemo` L'app demo deve essere aggiunta come client.

   1. Nel **client iniziale dell'app**, scegli **Client riservato**. Inserisci il nome del client dell'app, ad esempio**planetsdemo**, quindi scegli **Genera un segreto client**.

   1. In **URL di callback consentito**, inserisci l'URL a cui reindirizzare l'utente dopo l'autenticazione. L'URL deve terminare con. `/login/oauth2/code/cognito` Ad esempio, per la nostra applicazione e le applicazioni di backend Gapwalk e BAC:

      ```
      http://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
      ```

      Puoi modificare l'URL in un secondo momento.  
![\[alt_text\]](http://docs.aws.amazon.com/it_it/m2/latest/userguide/images/cog-urls.png)

   1. In **Connessione consentita**, URLs inserisci l'URL della pagina di disconnessione a cui desideri reindirizzare Amazon Cognito quando l'applicazione disconnette gli utenti. Ad esempio, per le applicazioni backend Gapwalk e BAC:

      ```
      http://localhost:8080/bac/logout
      http://localhost:8080/gapwalk-application/logout
      http://localhost:8080/planetsdemo/logout
      ```

      Puoi modificare l'URL in un secondo momento.

   1. Mantieni i valori predefiniti nelle sezioni **Impostazioni avanzate del client dell'app** e **Attribuisci autorizzazioni di lettura e scrittura**.

   1. Scegli **Next (Successivo)**.

1. In **Rivedi e crea**, verifica le tue scelte, quindi scegli **Crea pool di utenti**.

Per ulteriori informazioni, consulta [Creare un pool di utenti](https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-create-user-pool.html).

**Creazione di utenti**

Poiché l'autoregistrazione è disabilitata, crea un utente Amazon Cognito. Accedi ad Amazon Cognito in. Console di gestione AWS Scegli il pool di utenti che hai creato, quindi in **Utenti** scegli **Crea utente**.

In **Informazioni utente**, scegli **Invia un invito via e-mail**, inserisci un nome utente e un indirizzo e-mail e scegli **Genera una password**. Selezionare **Create user (Crea utente)**.

**Creazione del ruolo**

Nella scheda **Gruppi**, crea 3 gruppi (SUPER\$1ADMIN, ADMIN e USER) e associa il tuo utente a uno o più di questi gruppi. Questi ruoli vengono successivamente mappati su ROLE\$1SUPER\$1ADMIN, ROLE\$1ADMIN e ROLE\$1USER dall'applicazione Gapwalk per consentire l'accesso ad alcune chiamate REST API con restrizioni.

L'applicazione scope-to-role implementa una mappatura OAuth2 gerarchica che funziona con più provider di identità. Quando i token JWT emessi da Cognito vengono utilizzati per l'autorizzazione del server di risorse, gli ambiti definiti nel token vengono mappati automaticamente ai ruoli corrispondenti.

## Integra Amazon Cognito nell'applicazione Gapwalk
<a name="integrate-cognito"></a>

Ora che il pool di utenti e gli utenti di Amazon Cognito sono pronti, vai al `application-main.yml` file della tua applicazione modernizzata e aggiungi il codice seguente:

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

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

Sostituisci i seguenti segnaposto come descritto:

1. Accedi ad Amazon Cognito in Console di gestione AWS ed esegui l'autenticazione utilizzando le tue credenziali. AWS 

1. Scegli **User Pools** e scegli il pool di utenti che hai creato. Puoi trovare il tuo **ID *pool-id* del pool di utenti**.

1. Scegli **l'integrazione delle app** dove puoi trovare la tua*your-cognito-domain*, quindi vai su **App client e analisi** e scegli la tua app.

1. Nel **client App: YourApp** puoi trovare *client-name**client-id*, e *client-secret* (**Mostra il segreto del client**).

1. *region-id*corrisponde all'ID della AWS regione in cui hai creato l'utente e il pool di utenti di Amazon Cognito. Esempio: `eu-west-3`.

1. Per *redirect-uri* inserisci l'URI che hai specificato per **Allowed callback** URL. Nel nostro esempio lo è`http://localhost:8080/planetsdemo/login/oauth2/code/cognito`.

Ora puoi distribuire la tua applicazione Gapwalk e utilizzare l'utente creato in precedenza per accedere alla tua app.