

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

# Lavorare con le fonti di Amazon Cognito identità
<a name="identity-sources-cognito"></a>

Verified Permissions lavora a stretto contatto con i pool di utenti di Amazon Cognito. Amazon Cognito JWTs hanno una struttura prevedibile. Verified Permissions riconosce questa struttura e trae il massimo beneficio dalle informazioni in essa contenute. Ad esempio, è possibile implementare un modello di autorizzazione per il controllo degli accessi basato sui ruoli (RBAC) con token ID o token di accesso.

Una nuova fonte di identità per i pool di utenti di Amazon Cognito richiede le seguenti informazioni:
+ Il Regione AWS.
+ L'ID pool di utenti.
+ Il tipo di entità principale che desideri associare alla fonte della tua identità, ad esempio`MyCorp::User`.
+ Il tipo di entità di gruppo principale che desideri associare alla tua fonte di identità, ad esempio`MyCorp::UserGroup`.
+ Il client IDs del tuo pool di utenti che desideri autorizzare a effettuare richieste al tuo policy store.

Poiché Verified Permissions funziona solo con i pool di utenti di Amazon Cognito nello Account AWS stesso account, non puoi specificare una fonte di identità in un altro account. Verified Permissions imposta il *prefisso dell'entità*, l'identificatore dell'identità e della fonte a cui devi fare riferimento nelle politiche che agiscono sui principali del pool di utenti, all'ID del tuo pool di utenti, ad esempio. `us-west-2_EXAMPLE` In questo caso, faresti riferimento a un utente in quel pool di utenti con ID come `a1b2c3d4-5678-90ab-cdef-EXAMPLE22222` `us-west-2_EXAMPLE|a1b2c3d4-5678-90ab-cdef-EXAMPLE22222`

Le *dichiarazioni relative* ai token del pool di utenti possono contenere attributi, ambiti, gruppi IDs, client e dati personalizzati. [Amazon Cognito JWTs](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html)hanno la capacità di includere una varietà di informazioni che possono contribuire alle decisioni di autorizzazione nelle autorizzazioni verificate. Ciò include:

1. Nome utente e affermazioni di gruppo con prefisso `cognito:`

1. [Attributi utente personalizzati](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-custom-attributes) con un `custom: prefix`

1. Affermazioni personalizzate aggiunte in fase di esecuzione

1. Dichiarazioni standard OIDC come e `sub` `email`

Tratteremo in dettaglio queste affermazioni e come gestirle nelle politiche sulle autorizzazioni verificate, in. [Mappatura dei Amazon Cognito token sullo schema](cognito-map-token-to-schema.md)

**Importante**  
Sebbene sia possibile revocare Amazon Cognito i token prima della scadenza, JWTs sono considerati risorse stateless, autonome e dotate di firma e validità. I servizi conformi [al token Web JSON RFC 7519 dovrebbero convalidare i token](https://datatracker.ietf.org/doc/html/rfc7519) in remoto e non sono tenuti a convalidarli con l'emittente. Ciò significa che è possibile che Verified Permissions conceda l'accesso in base a un token revocato o rilasciato a un utente che è stato successivamente eliminato. Per mitigare questo rischio, ti consigliamo di creare i token con la durata di validità più breve possibile e di revocare i token di aggiornamento quando desideri rimuovere l'autorizzazione a continuare la sessione di un utente. [Per ulteriori informazioni, consulta Terminare le sessioni utente con revoca dei token](https://docs.aws.amazon.com/cognito/latest/developerguide/token-revocation.html)

L'esempio seguente mostra come creare una policy che faccia riferimento ad alcune delle dichiarazioni dei pool di utenti di Amazon Cognito associate a un'entità principale.

```
permit(
     principal, 
     action, 
     resource == ExampleCo::Photo::"VacationPhoto94.jpg" 
)
when { 
     principal["cognito:username"]) == "alice" &&
     principal["custom:department"]) == "Finance"
};
```

L'esempio seguente mostra come creare una politica che faccia riferimento a un principale che è un utente in un pool di utenti di Cognito. Nota che l'ID principale assume la forma di`"<userpool-id>|<sub>"`.

```
permit(
     principal == ExampleCo::User::"us-east-1_example|a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", 
     action, 
     resource == ExampleCo::Photo::"VacationPhoto94.jpg" 
);
```

Le politiche Cedar per le fonti di identità del pool di utenti in Verified Permissions utilizzano una sintassi speciale per i nomi delle rivendicazioni che contengono caratteri diversi da quelli alfanumerici e dal carattere di sottolineatura (). `_` Ciò include le dichiarazioni di prefisso del pool di utenti che contengono un carattere, come e. `:` `cognito:username` `custom:department` Per scrivere una condizione politica che faccia riferimento al `custom:department` claim `cognito:username` o, scrivila rispettivamente come `principal["cognito:username"]` e`principal["custom:department"]`.

**Nota**  
Se un token contiene un'attestazione con un `custom:` prefisso `cognito:` or e un nome di attestazione con valore letterale `cognito` o`custom`, una richiesta di autorizzazione con [IsAuthorizedWithToken](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_IsAuthorizedWithToken.html)un. `ValidationException`

Per ulteriori informazioni sulla mappatura delle attestazioni, consulta. [Mappatura dei Amazon Cognito token sullo schema](cognito-map-token-to-schema.md) Per ulteriori informazioni sull'autorizzazione per Amazon Cognito gli utenti, consulta [Authorization with Amazon Verified Permissions](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-authorization-with-avp.html) nella *Amazon Cognito* Developer Guide.

**Topics**
+ [Creazione di fonti di Amazon Cognito identità Amazon Verified Permissions](cognito-create.md)
+ [Modifica delle fonti di Amazon Cognito identità di Amazon Verified Permissions](cognito-edit.md)
+ [Mappatura dei Amazon Cognito token sullo schema](cognito-map-token-to-schema.md)
+ [Convalida di clienti e destinatari per Amazon Cognito](cognito-validation.md)