Domande frequenti su Amazon Cognito

Domande generali

Amazon Cognito ti consente di aggiungere la registrazione utente, l'accesso, il controllo degli accessi e l'accesso ai servizi AWS tramite intermediazione alle tue applicazioni web e mobili in pochi minuti. È un servizio conveniente e incentrato sullo sviluppatore che fornisce archivi di identità sicuri e basati su tenant e opzioni di federazione scalabili fino a milioni di utenti. Amazon Cognito ti aiuta a creare esperienze personalizzate per i clienti, migliorare la sicurezza e adattarti alle esigenze dei tuoi clienti. Ad esempio, supporta l'accesso con i provider di identità social e l'accesso senza password utilizzando le passkey WebAuthn o le password monouso SMS ed e-mail. Amazon Cognito supporta vari standard di conformità, opera su standard di identità aperti e si integra con un ampio catalogo di risorse di sviluppo e librerie SDK.

Con Amazon Cognito potrai concentrarti sulla creazione di app di alto livello, lasciando a noi il compito di creare, proteggere e ridimensionare una soluzione che supporti gestione e autenticazione di utenti.

Per iniziare a usare questo servizio, accedi alla Console AWS. Se non disponi di un account Amazon Web Services, puoi crearne uno al primo accesso alla console. Dopo aver creato un pool di utenti per la gestione degli utenti o un pool di identità per identità federate, puoi integrare l'applicazione e le API con OAuth e OpenID Connect (OIDC).

Per ulteriori informazioni, consulta le nostre risorse introduttive.

Amazon Cognito è stato progettato per gli sviluppatori che desiderano aggiungere funzionalità di gestione degli utenti e di sincronizzazione alle loro applicazioni Web e per dispositivi mobili. Gli sviluppatori possono usare Cognito Identity per aggiungere strumenti di registrazione e di accesso alle loro app e per consentire ai loro utenti di eseguire l'accesso in modo sicuro alle risorse delle loro applicazioni. Cognito permette inoltre agli sviluppatori di sincronizzare i dati su più dispositivi, piattaforme e applicazioni.

Sì. Cognito si collega ad API lato server. È possibile creare la propria interfaccia personalizzata per Cognito richiamando direttamente queste API. Per una descrizione delle API lato server, consulta la Developer Guide.

Il supporto per Cognito è incluso nel kit SDK AWS Mobile opzionale, disponibile per iOS, Android, Unity e Kindle Fire. Cognito è disponibile anche in AWS SDK per .NET, C++, Go, Java, JavaScript, PHP v3, Python, Ruby v3 e nell'interfaccia a riga di comando.

Visita la nostra pagina delle risorse per visualizzare e scaricare gli SDK disponibili.

Cognito collega i controlli e i dati alle API come servizi Web. Puoi implementare la tua libreria client richiamando le API lato server direttamente.

Aggiungi registrazione e accesso alle tue app Web e per dispositivi mobili

Per gli autenticatori a primo fattore, Amazon Cognito supporta nome utente/password, e-mail OTP senza password, SMS OTP senza password e chiavi WebAuthn. Cognito supporta i seguenti autenticatori a più fattori (MFA): e-mail OTP, SMS OTP e autenticatori TOTP. Inoltre, clienti e partner possono implementare il supporto per prodotti di terze parti e autenticatori personalizzati con flussi di autenticazione personalizzati, utilizzando le estensioni AWS Lambda.

Sì, puoi aggiungere alle tue app strumenti di registrazione e accesso per gli utenti in modo semplice e sicuro con Amazon Cognito. Gli utenti potranno registrarsi o eseguire l'accesso utilizzando e-mail, numero di telefono o nome utente. Puoi anche implementare funzioni di sicurezza avanzate, ad esempio verifica dell'email, verifica del numero di telefono e autenticazione a più fattori. Cognito consente di personalizzare i flussi di lavoro, ad esempio, aggiungendo funzioni specifiche per applicazioni al processo di registrazione degli utenti, rendendo più sicura la convalida di utenti e semplificando il rilevamento di attività fraudolente mediante AWS Lambda. Per ulteriori informazioni, consulta la nostra documentazione.

Un pool di utenti è una directory utente basata sul tenant configurabile per le applicazioni Web e per dispositivi mobili. Un pool di utenti memorizza in modo sicuro gli attributi del profilo degli utenti e supporta uno schema personalizzato. Puoi creare e gestire i pool di utenti tramite console AWS, interfaccia a riga di comando e kit SDK AWS.

Gli sviluppatori possono usare gli attributi standard di profili utente basati su OpenID Connect (ad esempio nome, numero di telefono, indirizzo, fuso orario, ecc.) oppure aggiungere attributi personalizzati in base all’app.

Sì, è possibile utilizzare la funzione di aliasing per consentire agli utenti di eseguire la registrazione o l'accesso solo con un indirizzo e-mail o un numero di telefono e una password.

Per ulteriori informazioni, consulta la nostra documentazione.

 

Sì, al momento della configurazione di un pool di utenti puoi impostare policy di password quali la lunghezza della password, la complessità dei caratteri e la cronologia della password. Inoltre, Amazon Cognito supporta il controllo delle credenziali compromesse su ogni registrazione utente, accesso e modifica della password per garantire che gli utenti non accedano con una password compromessa su un altro sito.

Sì, con Amazon Cognito è possibile richiedere agli utenti di procedere alla verifica dei loro indirizzi e-mail o numeri di telefono prima di poterli utilizzare nell'applicazione. Durante la registrazione, sarà inviato un codice di verifica al numero di telefono o all'indirizzo e-mail forniti; per completare la registrazione, l'utente dovrà quindi immettere tale codice nell'app.

Sì, puoi consentire agli utenti della tua applicazione di accedere con MFA basata su SMS. Quando questa funzione è abilitata, gli utenti dovranno immettere la propria password (il primo fattore di autenticazione) e un codice di sicurezza che può essere inoltrato esclusivamente sul loro telefono tramite SMS (il secondo fattore di autenticazione).

Sì, puoi personalizzare i flussi di registrazione e accesso utilizzando AWS Lambda. Ad esempio, è possibile creare delle funzioni AWS Lambda che consentono di identificare attività fraudolente o di eseguire convalide aggiuntive sui dati degli utenti. È possibile attivare funzioni Lambda personalizzate in fase di pre-registrazione, post-conferma (registrazione), pre-autenticazione, durante l'autenticazione e dopo l'autenticazione. Puoi anche utilizzare le funzioni Lambda per personalizzare i messaggi inviati per la verifica dell'e-mail o del numero di telefono in fase di autenticazione a più fattori.

Sì, è possibile abilitare la memorizzazione dei dispositivi usati per l'accesso all'applicazione; questi dispositivi saranno associati ai singoli utenti all'interno di un pool di utenti di Cognito. Per gli utenti per cui è prevista l'autenticazione a più fattori, è possibile utilizzare i dispositivi ricordati per eliminare le difficoltà del secondo fattore (autenticazione adattiva).

Esistono due modi per migrare gli utenti già presenti nella directory o nel database utenti di un'applicazione ai pool di utenti: migrazione just-in-time (JIT) e migrazione in blocco.

Amazon Cognito ti aiuta a migrare gli utenti in tempo reale nel momento stesso in cui essi accedono alla tua applicazione utilizzando un trigger AWS Lambda integrato. Il trigger Lambda consente di migrare i dati degli utenti da un sistema esterno senza costringerli a reimpostare la password.

In alternativa, è possibile migrare gli utenti in blocco caricando un file CSV contenente i dati del profilo per tutti gli utenti dell'applicazione. Il file CSV può essere caricato tramite la console Amazon Cognito, le API o l'interfaccia a riga di comando (CLI) di AWS. Dopo il primo accesso, gli utenti dovranno verificare il proprio account e creare una nuova password utilizzando un codice di verifica ricevuto per e-mail o via telefono.

Per ulteriori informazioni, consulta importazione di utenti nei pool di utenti.

Abilita l’accesso alle risorse AWS

Sì, i pool di identità Cognito permettono di autenticare gli utenti tramite un provider di identità esterno e fornisce credenziali di sicurezza temporanee per accedere alle risorse AWS di backend di un'app o qualsiasi servizio protetto da Gateway Amazon API. Amazon Cognito è compatibile con provider di identità esterni che supportano lo standard SAML o OpenID Connect e provider di identità social quali Facebook, Twitter e Amazon, e consente anche di integrare il proprio provider di identità.

Puoi utilizzare Amazon, Facebook, Twitter, accedere con Apple, i provider di identità social di Google, i provider di identità OpenID Connect (OIDC), i provider di identità SAML, i pool di utenti Amazon Cognito e i provider di sviluppatori personalizzati.

I pool di identità ti consentono di creare identità uniche per i tuoi utenti e di federarli in modo sicuro con i provider di servizi AWS. I clienti utilizzano i pool di identità di Amazon Cognito come broker di credenziali per ottenere credenziali AWS temporanee e con privilegi limitati per accedere alle risorse AWS.

Gli utenti possono accedere tramite pool di utenti Amazon Cognito, provider di identità OIDC, provider di identità SAML o provider di identità social e ottenere un accesso basato sui ruoli ai servizi AWS, come i bucket Amazon S3 o i record Amazon DynamoDB. I pool di identità non memorizzano i profili degli utenti. Un pool di identità può essere associato con una o più app. Se utilizzi due diversi pool di identità per due app, lo stesso utente finale avrà due differenti identificatori univoci, uno per ogni pool di identità.

L'app per dispositivi mobili procede all'autenticazione con un provider di identità utilizzando il kit SDK del provider. Quando l'utente finale viene autenticato con il provider di identità, il token OpenID Connect oppure l'asserzione SAML restituiti dal provider vengono inoltrati dall'app al pool di identità Cognito, che restituisce un nuovo ID Cognito per l'utente e configura un set di credenziali AWS temporanee con privilegi limitati.

I pool di identità Cognito si integrano con i sistemi di autenticazione esistenti. Mediante una semplice chiamata API, puoi recuperare ID Cognito degli utenti finali in base all'identificatore univoco specifico. Una volta ottenuto l'ID Cognito e il token OpenID, puoi utilizzare l’oSDK client dei pool di identità Cognito per accedere alle risorse AWS e sincronizzare i dati degli utenti.

I pool di identità Cognito assegnano gli utenti un set di credenziali temporanee e con privilegi limitati per accedere alle tue risorse AWS, perciò non è necessario usare le credenziali dell'account AWS. Le autorizzazioni per ciascun utente sono controllate tramite ruoli IAM di AWS personalizzabili. È possibile definire regole per scegliere il ruolo IAM di ciascun utente; se utilizzi i gruppi in un pool di utenti Cognito, puoi assegnare ruoli IAM in base a tali gruppi. I pool di identità Cognito consentono inoltre di definire un ruolo IAM separato con permessi limitati per gli utenti guest privi di autenticazione. Infine, puoi usare identificatori univoci generati da Cognito per definire l'accesso degli utenti a risorse specifiche. Ad esempio, puoi creare una policy per un bucket S3 che permetta agli utenti l'accesso solo alla propria cartella.

No, l'app comunica direttamente con il provider di identità pubbliche supportato (Amazon, Facebook, Twitter, sign in with Apple, Google, SAML oppure qualsiasi provider che offra compatibilità con OpenID Connect) per l'autenticazione degli utenti. Cognito Identity non riceve né memorizza le credenziali degli utenti. Cognito Identity utilizza il token del provider di identità per ottenere un identificatore univoco per l'utente, quindi ne esegue l'hashing utilizzando un hash unidirezionale; in questo modo potrà riconoscere lo stesso utente in un secondo momento senza memorizzare l'identificatore dell'utente.

Cognito Identity non riceve informazioni confidenziali (ad esempio indirizzi email, elenchi di amici o altro)

I pool di identità Cognito supportano la creazione e la distribuzione di token sia per utenti autenticati sia per quelli privi di autenticazione. In questo modo è possibile utilizzare credenziali temporanee con privilegi limitati per accedere alla risorse AWS senza dover implementare un'ulteriore schermata di accesso all'app.

Cognito Identity supporta l'accesso tramite Amazon, Facebook, Twitter, Digits, e Google, e offre supporto per utenti non autenticati. Con Cognito Identity è possibile supportare l'autenticazione di utenti federati, la memorizzazione e la sincronizzazione dei dati di profilo e la distribuzione di token di accesso AWS senza dover compilare una sola riga di codice per il back-end.

Gli utenti non autenticati sono utenti che non eseguono l'autenticazione tramite un provider di identità, effettuando l’accesso come utenti guest. Puoi definire un ruolo IAM separato per tali utenti, fornendo loro permessi di accesso limitati alle risorse di back-end.

Sì. i pool di identità Cognito supportano l'uso di identità separate su uno stesso dispositivo, ad esempio un iPad utilizzato da tutta la famiglia. Ogni identità viene trattata separatamente ed è possibile mantenere il controllo completo sulle modalità di gestione da parte dell'app di login e logout degli utenti e di memorizzazione dei dati in locale e in remoto.

È possibile creare programmaticamente set di dati associati ai pool di identità Cognito, memorizzandoli sotto forma di coppie chiave-valore. I dati vengono memorizzati sia in locale sul dispositivo sia nello storage di sincronizzazione di Cognito. Cognito può anche sincronizzare questi dati su tutti i dispositivi dell'utente finale.

Il numero di identità nei pool di utenti Cognito mostra quante identità sono state create tramite le API dei pool di identità Cognito. Per quanto riguarda le identità autenticate (quelle che eseguono l'accesso tramite un provider di accessi quale Facebook o un provider di token OpenID Connect), ogni chiamata dell'API GetId dei pool di identità Cognito crea una singola identità per ogni utente. Tuttavia, per le identità non autenticate, ogni volta che il client in un'app richiama l'API GetId viene creata una nuova identità. Di conseguenza, se l'app richiama più di una volta l'API GetId per identità non autenticate, ad un singolo utente corrisponderanno diverse identità. Per questo è importante memorizzare nella cache le risposte del comando GetId quando sono in uso identità non autenticate, non richiamandolo più volte per uno stesso utente.

L’SDK Mobile consente di memorizzare automaticamente i dati dei pool di identità nella cache Cognito in modo da non doversene preoccupare. Se cerchi una soluzione di analisi completa per la tua app che consenta di tenere traccia di utenti unici, consulta le informazioni su Amazon Mobile Analytics.

Prezzi

Per i prezzi del pool di utenti di Amazon Cognito, consulta la pagina dei prezzi di Amazon Cognito.

Per calcolare i costi stimati, utilizza il Calcolatore dei prezzi AWS

 

Paghi per i pool di utenti Amazon Cognito in base ai tuoi utenti attivi mensili (MAU). Un utente viene considerato MAU se, entro un mese di calendario, l'app genera un'operazione di identità per quell'utente, come creazione o aggiornamento amministrativo, registrazione, accesso, disconnessione, aggiornamento del token, modifica della password, aggiornamento degli attributi dell'account utente o interrogazione degli attributi su un utente (API AdminGetUser). Nello stesso mese di calendario, non viene addebitato alcun costo per le sessioni successive o per gli utenti inattivi. In genere il numero totale di utenti e il numero totale di operazioni è significativamente maggiore del numero totale di utenti mensili attivi.

Per i prezzi di Amazon Cognito Sync, consulta la pagina dei prezzi di Amazon Cognito.

I costi di utilizzo della messaggistica SMS per verificare numeri di telefono, per inviare codici per password dimenticate o da reimpostare oppure per l'autenticazione a più fattori vengono addebitati separatamente. Per ulteriori informazioni, consulta la pagina dei prezzi di invio di SMS in tutto il mondo.

Richiamare il metodo synchronize() tramite il kit SDK Mobile di AWS conta come un'operazione di sincronizzazione. Se richiami direttamente le API del server, viene avviata un'operazione di sincronizzazione all’emissione di un nuovo token per la sessione di sincronizzazione; l’operazione viene completata con un intervento di scrittura o con un timeout del token di sessione. In entrambi i casi, sia con il metodo synchronize() sia con la chiamata diretta delle API del server, il costo delle operazioni di sincronizzazione è lo stesso.

Sì, i pool di utenti di Amazon Cognito SKU e Essentials SKU sono gratuiti per i primi 10.000 MAU. Gli account dei clienti con pool di utenti Amazon Cognito attivi prima del 21 novembre 2024 sono idonei per il livello gratuito di 50.000 MAU.

Il piano gratuito di AWS include, per i clienti di AWS idonei, 10 GB di spazio di sincronizzazione su cloud e 1.000.000 di operazioni di sincronizzazione al mese per i primi 12 mesi.

L'uso dei pool di identità di Amazon Cognito per l'autenticazione degli utenti e la generazione di identificatori univoci è fornito gratuitamente.

Non è previsto alcun costo aggiuntivo per l'utilizzo di eventi Cognito per attivare funzioni Lambda; quando tali funzioni sono in esecuzione, saranno applicate le tariffe standard per l'utilizzo di AWS Lambda e di altri servizi AWS.

Per ulteriori informazioni, visita la pagina dei prezzi di AWS Lambda.

 

Puoi decidere tu quando richiamare il metodo synchronize(). Le operazioni di lettura e scrittura dal dispositivo avvengono verso lo storage SQLite locale. In questo modo hai il completo controllo delle tue spese.

Cognito utilizza Amazon SNS per inviare notifiche push silenziose. Non sono previsti costi aggiuntivi per l'utilizzo di Cognito per la sincronizzazione push, ma saranno applicate le tariffe standard di Amazon SNS per le notifiche inviate ai dispositivi.