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à.
Gestione dell'identità dei clienti
La gestione delle identità e degli accessi dei clienti (CIAM) è una tecnologia che consente alle organizzazioni di gestire le identità dei clienti. Fornisce sicurezza e un'esperienza utente migliorata per la registrazione, l'accesso e l'accesso alle applicazioni di consumo, ai portali web o ai servizi digitali offerti da un'organizzazione. CIAM ti aiuta a identificare i tuoi clienti, creare esperienze personalizzate e determinare l'accesso corretto di cui hanno bisogno per le applicazioni e i servizi rivolti ai clienti. Una soluzione CIAM può anche aiutare un'organizzazione a soddisfare i mandati di conformità relativi agli standard e ai quadri normativi del settore. Per ulteriori informazioni, consulta Cos'è CIAM?
Amazon Cognito è un servizio di identità per applicazioni web e mobili che fornisce funzionalità CIAM ad aziende di qualsiasi dimensione. Amazon Cognito include una directory utente, un server di autenticazione e un servizio di autorizzazione per i token di accesso OAuth 2.0 e può anche fornire credenziali AWS temporanee. Puoi utilizzare Amazon Cognito per autenticare e autorizzare gli utenti dalla directory utente integrata, da un provider di identità federato come la tua directory aziendale o da provider di identità social come Google e Facebook.
I due componenti principali di Amazon Cognito sono i bacini d'utenza e i pool di identità. I pool di utenti sono elenchi di utenti che forniscono opzioni di registrazione e accesso per gli utenti delle tue applicazioni web e mobili. I pool di identità forniscono credenziali AWS temporanee per concedere agli utenti l'accesso ad altri servizi AWS.
Quando usare Amazon Cognito
Amazon Cognito è un'ottima scelta quando hai bisogno di una soluzione di gestione degli utenti sicura ed economica per le tue applicazioni web e mobili. Ecco alcuni scenari in cui potresti decidere di utilizzare Amazon Cognito:
-
Autenticazione. Se stai prototipando un'applicazione o desideri implementare rapidamente la funzionalità di accesso utente, puoi utilizzare i pool di utenti e l'interfaccia utente ospitata di Amazon Cognito per accelerare lo sviluppo. Puoi concentrarti sulle funzionalità principali dell'applicazione mentre Amazon Cognito gestisce la registrazione, l'accesso e la sicurezza degli utenti.
Amazon Cognito supporta vari metodi di autenticazione, tra cui nomi utente e password, provider di identità social e provider di identità aziendali tramite SAML e OpenID Connect (OIDC).
-
Gestione degli utenti. Amazon Cognito supporta la gestione degli utenti, tra cui la registrazione degli utenti, la verifica e il ripristino dell'account. Gli utenti possono registrarsi e accedere con il loro provider di identità preferito e puoi personalizzare il processo di registrazione in base ai requisiti dell'applicazione.
-
Accesso sicuro alle risorse AWS. Amazon Cognito si integra con IAM per fornire un controllo granulare degli accessi alle risorse AWS. Puoi definire ruoli e policy IAM per controllare l'accesso ai servizi AWS in base all'identità dell'utente e all'appartenenza al gruppo.
-
Identità federata. Amazon Cognito supporta l'identità federata, che consente a un utente di accedere utilizzando le proprie identità social o aziendali esistenti. Ciò elimina la necessità per gli utenti di creare nuove credenziali per l'applicazione, migliorando così l'esperienza utente e riducendo le difficoltà durante il processo di registrazione.
-
Applicazioni mobili e web. Amazon Cognito è adatto sia per le applicazioni mobili che per quelle web. SDKs Fornisce diverse piattaforme e semplifica l'integrazione dell'autenticazione e del controllo degli accessi nel codice dell'applicazione. Supporta l'accesso e la sincronizzazione offline per le applicazioni mobili, in modo che gli utenti possano accedere ai propri dati anche quando sono offline.
-
Scalabilità. Amazon Cognito è un servizio ad alta disponibilità e completamente gestito, scalabile fino a milioni di utenti. Elabora oltre 100 miliardi di autenticazioni al mese.
-
Sicurezza. Amazon Cognito dispone di diverse funzionalità di sicurezza integrate, come la crittografia dei dati sensibili, l'autenticazione a più fattori (MFA) e la protezione da attacchi Web comuni come il cross-site scripting (XSS) e la falsificazione delle richieste tra siti (CSRF). Amazon Cognito offre anche funzionalità di sicurezza avanzate come l'autenticazione adattiva, il controllo dell'utilizzo di credenziali compromesse e la personalizzazione dei token di accesso.
-
Integrazione con i servizi AWS esistenti. Amazon Cognito si integra perfettamente con i servizi AWS. Ciò può semplificare lo sviluppo e semplificare la gestione degli utenti per le funzionalità che si basano sulle risorse AWS.
Il diagramma seguente illustra alcuni di questi scenari.

-
L'applicazione si autentica con i pool di utenti di Amazon Cognito e ottiene i token.
-
L'applicazione utilizza i pool di identità di Amazon Cognito per scambiare token con credenziali AWS.
-
L'applicazione accede ai servizi AWS con credenziali.
Ti consigliamo di utilizzare Amazon Cognito ogni volta che devi aggiungere funzionalità di autenticazione, autorizzazione e gestione degli utenti alle tue applicazioni Web o mobili, in particolare quando hai più provider di identità, richiedi un accesso sicuro alle risorse AWS e hai requisiti di scalabilità.
Considerazioni di natura progettuale
-
Crea un pool di utenti o un pool di identità di Amazon Cognito in base ai tuoi requisiti.
-
Non aggiornare il profilo utente troppo frequentemente (ad esempio, con ogni richiesta di accesso). Se è necessario un aggiornamento, archivia gli attributi aggiornati in un database esterno come Amazon DynamoDB.
-
Non utilizzare la gestione delle identità della forza lavoro di Amazon Cognito.
-
L'applicazione deve sempre convalidare JSON Web Tokens (JWTs) prima di fidarsi di essi verificandone la firma e la validità. Questa convalida deve essere eseguita sul lato client senza inviare chiamate API al pool di utenti. Dopo la verifica del token, puoi fidarti delle affermazioni contenute nel token e utilizzarle invece di effettuare chiamate API GetUser aggiuntive. Per ulteriori informazioni, consulta Verifica di un token Web JSON nella documentazione di Amazon Cognito. Puoi anche utilizzare librerie JWT aggiuntive
per la verifica dei token. -
Abilita le funzionalità di sicurezza avanzate di Amazon Cognito solo se non utilizzi un
CUSTOM_AUTH
flusso, trigger AWS Lambda per sfide di autenticazione personalizzate o accesso federato. Per considerazioni e limitazioni relative alle funzionalità di sicurezza avanzate, consulta la documentazione di Amazon Cognito. -
Consenti ad AWS WAF di proteggere i pool di utenti di Amazon Cognito utilizzando regole basate sulla frequenza e combinando più parametri di richiesta. Per ulteriori informazioni, consulta il post del blog AWS Proteggi il tuo pool di utenti Amazon Cognito con AWS WAF
. -
Se desideri un ulteriore livello di protezione, utilizza un CloudFront proxy Amazon per l'elaborazione e la convalida aggiuntive delle richieste in arrivo, come spiegato nel post del blog AWS Proteggi i client pubblici per Amazon Cognito utilizzando un
proxy Amazon. CloudFront -
Tutte le chiamate API dopo l'accesso dell'utente devono essere effettuate dai servizi di backend. Ad esempio, usa AWS WAF per negare le chiamate a
UpdateUserAttribute
, ma poi chiamaAdminUpdateUserAttribute
dal backend dell'applicazione per aggiornare l'attributo user. -
Quando crei un pool di utenti, scegli come gli utenti accederanno, ad esempio con un nome utente, un indirizzo email o un numero di telefono. Questa configurazione non può essere modificata dopo la creazione del pool di utenti. Analogamente, gli attributi personalizzati non possono essere modificati o rimossi dopo essere stati aggiunti al pool di utenti.
-
Ti consigliamo di abilitare l'autenticazione a più fattori (MFA) nel tuo pool di utenti.
-
Amazon Cognito attualmente non fornisce funzioni di backup o esportazione integrate. Per eseguire il backup o esportare i dati degli utenti, puoi utilizzare l'architettura di riferimento per l'esportazione dei profili di Amazon Cognito
. -
Usa i ruoli IAM per l'accesso generale alle risorse AWS. Per requisiti di autorizzazione dettagliati, usa Amazon Verified Permissions. Questo servizio di gestione delle autorizzazioni si integra nativamente con Amazon Cognito
. Puoi anche utilizzare la personalizzazione dei token di accesso per arricchire le attestazioni specifiche dell'applicazione al fine di determinare il livello di accesso e i contenuti disponibili per l'utente. Se la tua applicazione utilizza Amazon API Gateway come punto di ingresso, utilizza la funzionalità Amazon Cognito per proteggere Amazon API Gateway utilizzando Amazon Verified Permissions. Questo servizio gestisce e valuta politiche di sicurezza granulari che fanno riferimento agli attributi e ai gruppi degli utenti. Puoi garantire che solo gli utenti dei gruppi autorizzati di Amazon Cognito abbiano accesso all'applicazione. APIs Per ulteriori informazioni, consulta l'articolo Protect API Gateway with Amazon Verified Permissions sul sito Web della community AWS. -
Usa AWS SDKs per accedere ai dati degli utenti dal backend richiamando e recuperando gli attributi degli utenti, gli stati e le informazioni sul gruppo. Puoi archiviare i dati delle app personalizzate negli attributi utente di Amazon Cognito e mantenerli sincronizzati su tutti i dispositivi.
Le seguenti sezioni illustrano tre modelli per l'integrazione di Amazon Cognito con altri servizi AWS: Application Load Balancers, Amazon API Gateway e Amazon Service. OpenSearch
Integrazione con un Application Load Balancer
Puoi configurare un Application Load Balancer con Amazon Cognito per autenticare gli utenti dell'applicazione, come illustrato nel diagramma seguente.

Configurando la regola predefinita del listener HTTPS, è possibile trasferire l'identificazione degli utenti all'Application Load Balancer e creare un processo di autenticazione automatico. Per i dettagli, consulta Come configurare un Application Load Balancer per autenticare gli utenti tramite un pool di utenti Amazon Cognito nell'AWS Knowledge
Integrazione con Amazon API Gateway
Amazon API Gateway è un servizio di gateway API completamente gestito e basato sul cloud che semplifica la creazione, la pubblicazione e la gestione APIs su larga scala. È un punto di ingresso per il traffico degli utenti nei servizi di backend. Puoi integrare Amazon Cognito con API Gateway per implementare l'autenticazione e il controllo degli accessi, per proteggerli APIs da un uso improprio o per qualsiasi altro caso d'uso aziendale o di sicurezza. Puoi implementare l'autenticazione e il controllo degli accessi per un API Gateway sicuro APIs utilizzando un autorizzatore Amazon Cognito, Amazon Verified Permissions o un autorizzatore Lambda. La tabella seguente descrive come questi tre approcci supportano l'autorizzazione.
Tipo di autorizzatore | Autorizzazione supportata |
---|---|
Autorizzatore Amazon Cognito |
Token di accesso: ambiti Token ID: validità |
Autorizzazioni verificate — Autorizzatore Lambda |
Verified Permissions esegue la convalida del token (firma, scadenza) per il token configurato. Token di accesso: qualsiasi attributo semplice, attributo complesso, ambito o gruppo. Token ID: qualsiasi attributo semplice, attributo complesso, ambito o gruppo. Le policy possono anche utilizzare dati contestuali per l'autorizzazione Zero Trust (ad esempio, indirizzo IP, contesto della richiesta o impronta digitale del dispositivo). |
Autorizzatore Lambda personalizzato |
È possibile implementare uno schema di convalida e autorizzazione dei token personalizzato. |
Autorizzatore Amazon Cognito
Puoi integrare Amazon Cognito con API Gateway per implementare l'autenticazione e il controllo degli accessi, come illustrato nel diagramma seguente. L'autorizzatore Amazon Cognito convalida il token Web JSON (JWT) generato da Amazon Cognito e autorizza le richieste basate su ambiti personalizzati nel token di accesso o su un token ID valido. Per ulteriori informazioni sull'implementazione, consulta Come posso configurare un pool di utenti di Amazon Cognito come autorizzatore su un'API REST di API Gateway

Autorizzazioni verificate — Autorizzatore Lambda
Puoi utilizzare Amazon Verified Permissions per integrare Amazon Cognito o il tuo provider di identità con API Gateway per l'autenticazione e il controllo granulare degli accessi. Verified Permissions supporta la convalida di ID e token di accesso da Amazon Cognito o da qualsiasi provider OpenID Connect (OIDC) e può autorizzare l'accesso in base a attributi token semplici, attributi token complessi (come array o strutture JSON), ambiti e appartenenze ai gruppi. Per iniziare a proteggere API Gateway REST APIs utilizzando le autorizzazioni verificate, consulta il post sul blog sulla sicurezza di AWS Authorize API Gateway using APIs Amazon Verified Permissions with Amazon Cognito o bring your own identity provider e

Sistema di autorizzazione Lambda
Puoi utilizzare un autorizzatore AWS Lambda per implementare uno schema di autorizzazione personalizzato. Lo schema può utilizzare i parametri di richiesta per determinare l'identità del chiamante o utilizzare una strategia di autenticazione con token portatore come o SAML. OAuth Questa opzione offre la massima flessibilità ma richiede di codificare la logica per proteggere la tua. APIs Per ulteriori informazioni, consulta Utilizzare gli autorizzatori Lambda di API Gateway nella documentazione di API Gateway.
Integrazione con Amazon OpenSearch Service
Puoi usare Amazon Cognito per proteggere i domini di Amazon OpenSearch Service. Ad esempio, se un utente potrebbe aver bisogno di accedere alle OpenSearch dashboard da Internet, come illustrato nel diagramma seguente. In questo scenario, Amazon Cognito può fornire autorizzazioni di accesso, incluse autorizzazioni granulari, mappando i gruppi e gli utenti di Amazon Cognito alle autorizzazioni interne del Servizio. OpenSearch Per ulteriori informazioni, consulta Configurazione dell'autenticazione Amazon Cognito OpenSearch per i pannelli di controllo nella OpenSearch documentazione del servizio.
