

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à.

# Accesso alle risorse dopo l'accesso riuscito
<a name="accessing-resources"></a>

Gli utenti della tua app possono accedere direttamente tramite un pool di utenti oppure possono federarsi tramite un provider di identità (IdP) di terze parti. Il pool di utenti gestisce il sovraccarico di gestione dei token restituiti dall'accesso social tramite Facebook, Google, Amazon e Apple e da OpenID Connect (OIDC) e SAML. IdPs Per ulteriori informazioni, consulta [Comprensione dei token web JSON del pool di utenti () JWTs](amazon-cognito-user-pools-using-tokens-with-identity-providers.md). 

Dopo una corretta autenticazione, l'app riceverà i token del bacino d'utenza da Amazon Cognito. Puoi utilizzare i token del pool di utenti per:
+ Recupera AWS le credenziali che autorizzano le richieste di risorse applicative in Amazon Servizi AWS DynamoDB e Amazon S3.
+ Fornisci una prova di autenticazione temporanea e revocabile.
+ Inserisci i dati di identità in un profilo utente nella tua app.
+ Autorizza le modifiche al profilo dell'utente che ha effettuato l'accesso nella directory del pool di utenti.
+ Autorizza le richieste di informazioni sugli utenti con un token di accesso.
+ Autorizza le richieste ai dati protetti da accessi esterni APIs con token di accesso.
+ Autorizza l'accesso agli asset applicativi archiviati sul client o sul server con Amazon Verified Permissions.

Per ulteriori informazioni, consultare [Un esempio di sessione di autenticazione](authentication.md#amazon-cognito-user-pools-authentication-flow) e [Comprensione dei token web JSON del pool di utenti () JWTs](amazon-cognito-user-pools-using-tokens-with-identity-providers.md).

![\[Panoramica dell'autenticazione.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/scenario-authentication-cup.png)


**Topics**
+ [

# Autorizzazione dell'accesso alle risorse del client o del server con Amazon Verified Permissions
](scenario-backend.md)
+ [

# Accesso alle risorse con API Gateway dopo l'accesso
](user-pool-accessing-resources-api-gateway-and-lambda.md)
+ [

# Accesso Servizi AWS tramite un pool di identità dopo l'accesso
](amazon-cognito-integrating-user-pools-with-identity-pools.md)

# Autorizzazione dell'accesso alle risorse del client o del server con Amazon Verified Permissions
<a name="scenario-backend"></a>

[La tua app può trasferire i token da un utente registrato ad Amazon Verified Permissions.](https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/what-is-avp.html) Verified Permissions è un servizio scalabile e dettagliato di gestione e autorizzazione delle autorizzazioni per le applicazioni che hai creato. Un pool di utenti di Amazon Cognito può fungere da fonte di identità per un archivio di policy di Autorizzazioni verificate. Verified Permissions prende decisioni di autorizzazione per le azioni e le risorse richieste, ad `GetPhoto` esempio`premium_badge.png`, a partire dal principale e dai relativi attributi nei token del pool di utenti.

Il diagramma seguente mostra come l'applicazione può passare il token di un utente a Verified Permissions in una richiesta di autorizzazione.

![\[Un diagramma di flusso di un'applicazione che si autentica con un pool di utenti di Amazon Cognito e autorizza l'accesso alle risorse locali con Amazon Verified Permissions.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/access-services-local-resources.png)


**Inizia a usare Amazon Verified Permissions**  
Dopo aver integrato il tuo pool di utenti con Autorizzazioni verificate, ottieni una fonte centrale di autorizzazione granulare per tutte le tue app Amazon Cognito. Ciò elimina la necessità di una logica di sicurezza granulare che altrimenti dovresti codificare e replicare tra tutte le tue app. Per ulteriori informazioni sull'autorizzazione con autorizzazioni verificate, consulta. [Autorizzazione con Amazon Verified Permissions](amazon-cognito-authorization-with-avp.md)

Le richieste di autorizzazione di Verified Permissions richiedono credenziali AWS . È possibile implementare alcune delle seguenti tecniche per applicare in modo sicuro le credenziali alle richieste di autorizzazione.
+ Gestisci un'applicazione web in grado di archiviare segreti nel backend del server.
+ Acquisisci credenziali autenticate del pool di identità.
+ Invia tramite proxy le richieste degli utenti tramite un' access-token-authorizedAPI e aggiungi AWS le credenziali alla richiesta.

# Accesso alle risorse con API Gateway dopo l'accesso
<a name="user-pool-accessing-resources-api-gateway-and-lambda"></a>

Un uso comune dei token dei pool di utenti di Amazon Cognito consiste nell'autorizzare le richieste a un'API REST di [API](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html) Gateway. Gli ambiti OAuth 2.0 dei token di accesso possono autorizzare un metodo e un percorso, come for. `HTTP GET` `/app_assets` I token ID possono fungere da autenticazione generica per un'API e possono passare gli attributi utente al servizio di backend. API Gateway offre opzioni di autorizzazione personalizzate aggiuntive come gli autorizzatori [JWT per gli autorizzatori HTTP](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html) e APIs [Lambda che possono applicare una logica](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html) più dettagliata.

Il diagramma seguente illustra un'applicazione che sta ottenendo l'accesso a un'API REST con gli ambiti 2.0 in un token di accesso. OAuth 

![\[Un diagramma di flusso di un'applicazione che si autentica con un pool di utenti Amazon Cognito e autorizza l'accesso alle risorse API con Amazon API Gateway.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/access-services-api-gateway.png)


L'app deve raccogliere i token dalle sessioni autenticate e aggiungerli come token portatori a un'intestazione della richiesta. `Authorization` Configura l'autorizzatore che hai configurato per l'API, il percorso e il metodo per valutare il contenuto dei token. API Gateway restituisce i dati solo se la richiesta soddisfa le condizioni impostate per l'autorizzazione. 

Alcuni modi potenziali in cui l'API API Gateway può approvare l'accesso da un'applicazione sono:
+ Il token di accesso è valido, non è scaduto e contiene l'ambito OAuth 2.0 corretto. L'[autorizzazione dei pool di utenti di Amazon Cognito per un'API REST](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html) è un'implementazione comune con una bassa barriera all'ingresso. Puoi anche valutare il corpo, i parametri della stringa di query e le intestazioni di una richiesta a questo tipo di autorizzazione.
+ Il token ID è valido e non è scaduto. Quando passi un token ID a un autorizzatore Amazon Cognito, puoi eseguire un'ulteriore convalida del contenuto del token ID sul tuo server delle applicazioni.
+ Un gruppo, una dichiarazione, un attributo o un ruolo in un token di accesso o ID soddisfa i requisiti definiti in una funzione Lambda. Un [autorizzatore Lambda](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html) analizza il token nell'intestazione della richiesta e lo valuta per una decisione di autorizzazione. Puoi creare una logica personalizzata nella tua funzione o effettuare una richiesta API ad [Amazon Verified Permissions](https://docs.aws.amazon.com/verifiedpermissions/latest/userguide/what-is-avp.html).

Puoi anche autorizzare le richieste a un'API [AWS AppSync GraphQL](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#amazon-cognito-user-pools-authorization) con token provenienti da un pool di utenti.

# Accesso Servizi AWS tramite un pool di identità dopo l'accesso
<a name="amazon-cognito-integrating-user-pools-with-identity-pools"></a>

Dopo aver effettuato l'accesso con un pool di utenti, gli utenti possono accedere Servizi AWS con credenziali API temporanee emesse da un pool di identità.

La tua app web o mobile riceve token da un pool di utenti. Quando configuri il tuo pool di utenti come provider di identità per il tuo pool di identità, il pool di identità scambia i token con credenziali temporanee AWS . Queste credenziali possono essere applicate ai ruoli IAM e alle relative politiche che consentono agli utenti di accedere a un set limitato di risorse. AWS Per ulteriori informazioni, consulta [Flusso di autenticazione dei pool di identità](authentication-flow.md).

Il diagramma seguente mostra come un'applicazione accede a un pool di utenti, recupera le credenziali del pool di identità e richiede una risorsa da un. Servizio AWS

![\[Un diagramma di flusso di un'applicazione che si autentica con un pool di utenti Amazon Cognito e autorizza l'accesso alle AWS risorse con un pool di identità.\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/images/access-services-identity-pool.png)


Puoi utilizzare le credenziali del pool di identità per:
+ Effettua richieste di autorizzazione dettagliate ad Amazon Verified Permissions con le credenziali del tuo utente.
+ Connettiti a un'API REST di Amazon API Gateway o a un'API AWS AppSync GraphQL che autorizza le connessioni con IAM.
+ Connettiti a un backend di database come Amazon DynamoDB o Amazon RDS che autorizza le connessioni con IAM.
+ Recupera gli asset applicativi da un bucket Amazon S3.
+ Avvia una sessione con un desktop WorkSpaces virtuale Amazon.

I pool di identità non funzionano esclusivamente all'interno di una sessione autenticata con un pool di utenti. Accettano inoltre l'autenticazione direttamente da provider di identità di terze parti e possono generare credenziali per utenti ospiti non autenticati.

Per ulteriori informazioni sull'utilizzo dei pool di identità insieme ai gruppi di pool di utenti per controllare l'accesso alle AWS risorse, consulta e. [Aggiunta di gruppi a un bacino d'utenza](cognito-user-pools-user-groups.md) [Utilizzo del controllo degli accessi basato su ruoli](role-based-access-control.md) Inoltre, per ulteriori informazioni sui pool di identità e AWS Identity and Access Management, vedere[Flusso di autenticazione dei pool di identità](authentication-flow.md).

## Configurazione di un pool di utenti con Console di gestione AWS
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-setting-up"></a>

Crea un bacino d'utenza di Amazon Cognito e prendi nota dell'**ID bacino d'utenza** e dell'**ID client app** per ciascuna delle app client. Per ulteriori informazioni sulla creazione di bacini d'utenza, consulta l'articolo [Nozioni di base sui bacini d'utenza](getting-started-user-pools.md).

## Configurazione di un pool di identità con Console di gestione AWS
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-configuring"></a>

La procedura seguente descrive come utilizzare per Console di gestione AWS integrare un pool di identità con uno o più pool di utenti e app client.

**Per aggiungere un gestore dell'identità digitale al pool di utenti Amazon Cognito**

1. Scegli **Pool di identità** dalla [console di Amazon Cognito](https://console.aws.amazon.com/cognito/home). Seleziona un pool di identità.

1. Seleziona la scheda **Accesso utente**.

1. Seleziona **Aggiungi provider di identità**.

1. Seleziona **Pool di utenti Amazon Cognito**.

1. Inserisci un ID del pool di utenti e un **ID client dell'app**.

1. Per impostare il ruolo richiesto da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura **Impostazioni ruolo**.

   1. Puoi assegnare agli utenti di quell'IdP il **ruolo predefinito** che hai impostato quando hai configurato il **ruolo Autenticato** oppure puoi **scegliere il ruolo** con regole. Con un IdP del pool di utenti Amazon Cognito, puoi anche **scegliere un ruolo con attestazione preferred\$1role nei token**. Per ulteriori informazioni sulla richiesta `cognito:preferred_role`, consultare [Assegnazione dei valori di priorità ai gruppi](cognito-user-pools-user-groups.md#assigning-precedence-values-to-groups).

      1. Se hai scelto **Scegli il ruolo con le regole**, inserisci la **dichiarazione** di origine dall'autenticazione dell'utente, l'**operatore** che desideri utilizzare per confrontare l'affermazione con la regola, il **valore** che determinerà la corrispondenza con questa scelta di ruolo e il **ruolo** che desideri assegnare quando l'assegnazione del **ruolo** corrisponde. Seleziona **Aggiungi un altro** per creare una regola aggiuntiva basata su una condizione diversa.

      1. Se hai **scelto Choose role with preferred\$1role claim in token, Amazon** Cognito emette le credenziali per il ruolo nel claim dell'utente. `cognito:preferred_role` Se non è presente alcuna dichiarazione di ruolo preferito, Amazon Cognito emette le credenziali in base alla **risoluzione del ruolo**.

   1. Scegli una **Risoluzione del ruolo**. Quando le richieste dell'utente non corrispondono alle regole, puoi negare le credenziali o emettere credenziali per il **Ruolo autenticato**.

1. Per modificare i tag principali assegnati da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura **Attributi per il controllo degli accessi**.
   + Per non applicare alcun tag principale, scegli **Inattivo**.
   + Per applicare i tag principali in base alle richieste `sub` e `aud`, scegli **Utilizza mappature predefinite**.
   + Per creare un tuo schema personalizzato di attributi dei tag principali, scegli **Utilizza mappature personalizzate**. Quindi, inserisci una **Chiave tag** che deve essere originata da ciascuna **Richiesta** che desideri rappresentare in un tag.

1. Seleziona **Salva modifiche**.

## Integrazione di un bacino d'utenza con un pool di identità
<a name="amazon-cognito-integrating-user-pools-with-identity-pools-using"></a>

Dopo l'autenticazione dell'utente dell'app, aggiungi il relativo token di identità alla mappa degli accessi nel fornitore di credenziali. Il nome del provider dipenderà dal tuo ID bacino d'utenza di Amazon Cognito. avrà la struttura seguente:

```
cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>
```

**Puoi ricavare il valore per dall'ID del pool di utenti. *<region>*** Ad esempio, se l'ID del pool di utenti è`us-east-1_EXAMPLE1`, allora *<region>* è`us-east-1`. Se l'ID del pool di utenti è`us-west-2_EXAMPLE2`, allora *<region>* è`us-west-2`.

------
#### [ JavaScript ]

```
var cognitoUser = userPool.getCurrentUser();

if (cognitoUser != null) {
	cognitoUser.getSession(function(err, result) {
		if (result) {
			console.log('You are now logged in.');

			// Add the User's Id Token to the Cognito credentials login map.
			AWS.config.credentials = new AWS.CognitoIdentityCredentials({
				IdentityPoolId: 'YOUR_IDENTITY_POOL_ID',
				Logins: {
					'cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>': result.getIdToken().getJwtToken()
				}
			});
		}
	});
}
```

------
#### [ Android ]

```
cognitoUser.getSessionInBackground(new AuthenticationHandler() {
	@Override
	public void onSuccess(CognitoUserSession session) {
		String idToken = session.getIdToken().getJWTToken();

		Map<String, String> logins = new HashMap<String, String>();
		logins.put("cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>", session.getIdToken().getJWTToken());
		credentialsProvider.setLogins(logins);
	}

});
```

------
#### [ iOS - objective-C ]

```
AWSServiceConfiguration *serviceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:nil];
AWSCognitoIdentityUserPoolConfiguration *userPoolConfiguration = [[AWSCognitoIdentityUserPoolConfiguration alloc] initWithClientId:@"YOUR_CLIENT_ID"  clientSecret:@"YOUR_CLIENT_SECRET" poolId:@"YOUR_USER_POOL_ID"];
[AWSCognitoIdentityUserPool registerCognitoIdentityUserPoolWithConfiguration:serviceConfiguration userPoolConfiguration:userPoolConfiguration forKey:@"UserPool"];
AWSCognitoIdentityUserPool *pool = [AWSCognitoIdentityUserPool CognitoIdentityUserPoolForKey:@"UserPool"];
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"YOUR_IDENTITY_POOL_ID" identityProviderManager:pool];
```

------
#### [ iOS - swift ]

```
let serviceConfiguration = AWSServiceConfiguration(region: .USEast1, credentialsProvider: nil)
let userPoolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: "YOUR_CLIENT_ID", clientSecret: "YOUR_CLIENT_SECRET", poolId: "YOUR_USER_POOL_ID")
AWSCognitoIdentityUserPool.registerCognitoIdentityUserPoolWithConfiguration(serviceConfiguration, userPoolConfiguration: userPoolConfiguration, forKey: "UserPool")
let pool = AWSCognitoIdentityUserPool(forKey: "UserPool")
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId: "YOUR_IDENTITY_POOL_ID", identityProviderManager:pool)
```

------