Nozioni di base su Amazon Cognito

D: Cos'è Amazon Cognito?
Amazon Cognito consente di aggiungere strumenti di registrazione e autenticazione ad applicazioni Web e per dispositivi mobili. Amazon Cognito permette di autenticare gli utenti tramite un provider di identità esterno e fornisce credenziali di sicurezza temporanee per accedere alle risorse AWS di back-end di un'app o qualsiasi servizio protetto da Amazon API Gateway. 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à.

Inoltre, grazie alla sincronizzazione, l'esperienza degli utenti sarà uniforme su tutti i loro dispositivi, anche quelli appena acquistati. Le app potranno salvare i dati in locale sui dispositivi degli utenti per poter essere utilizzate anche offline, sincronizzandosi poi in automatico appena risulta disponibile una connessione.

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 e sincronizzazione su più piattaforme e dispositivi.

D: A chi si rivolge Amazon Cognito?
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.

D: Come si inizia a usare Amazon Cognito?
Per iniziare a usare questo servizio, accedi alla Console di AWS. Se non disponi di un account Amazon Web Services, puoi crearne uno al primo accesso alla console. Una volta creato un pool di utenti (per la gestione di utenti) oppure un pool di identità (per le identità federate o la sincronizzazione), scarica il kit SDK AWS Mobile e integralo nella tua app. In alternativa, puoi richiamare direttamente le API lato server di Cognito senza impiegare il kit SDK. Consulta la Developer Guide per ulteriori informazioni.

D: Amazon Cognito si collega ad API lato server?
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.

D: Quali piattaforme supporta Amazon Cognito?
Il supporto per Cognito è incluso nel kit SDK AWS Mobile opzionale, disponibile per iOS, Android, Unity e Kindle Fire. Cognito è anche disponibile nel kit SDK AWS per JavaScript. I pool di utenti sono al momento supportati nei kit SDK AWS Mobile per iOS e Android e nel kit SDK AWS JavaScript per Cognito. Visita la pagina delle risorse per scaricare i kit SDK.

D: È necessario usare il kit SDK AWS Mobile?
No. Cognito collega i controlli e i dati alle API come servizi Web. Puoi implementare la tua libreria client richiamando le API lato server direttamente.

 

D: È possibile impiegare il proprio provider di identità per supportare registrazione e accesso degli utenti?

Sì, puoi aggiungere alle tue app strumenti di registrazione e accesso per gli utenti in modo semplice e sicuro con Cognito Identity. 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'e-mail, verifica del numero di telefono e autenticazione a più fattori. Cognito Identity consente anche di personalizzare i flussi di lavoro, ad esempio, aggiungendo funzioni specifiche per app 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.

D: Cos'è un pool di utenti?

Un pool di utenti è una directory utenti configurabile per l'utilizzo con un'applicazione Web e per dispositivi mobili. Un pool di utenti consente di memorizzare in modo sicuro gli attributi del profilo dei tuoi utenti. Puoi creare e gestire i pool di utenti tramite console di AWS, interfaccia a riga di comando e kit SDK AWS.

D: Quali informazioni del profilo degli utenti sono supportate da Cognito Identity?

Gli sviluppatori possono usare attributi di profili utente standard basati su OpenID Connect (ad esempio nome, numero di telefono, indirizzo, fuso orario, ecc.) o personalizzarli per aggiungere attributi utente specifici per l'app.

D: È possibile consentire agli utenti di un'applicazione la registrazione o l'accesso con un indirizzo e-mail o un numero di telefono?

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

D: È possibile impostare policy di password?

Sì, al momento della configurazione di un pool di utenti puoi impostare policy di password quali il livello di sicurezza della password e i caratteri obbligatori.

D: È possibile verificare gli indirizzi e-mail e i numeri di telefono degli utenti della mia applicazione?

Sì, con Cognito Identity è 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.

D: Cognito Identity supporta Multi-Factor Authentication (MFA) basata su SMS?

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

D: È possibile personalizzare i flussi di lavoro di registrazione e di accesso degli utenti?

Sì, è possibile personalizzare registrazione e accesso aggiungendo funzioni specifiche per app ai flussi di registrazione e accesso degli utenti mediante 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 fornite dagli sviluppatori prima della registrazione e dopo la conferma, nonché prima, durante (per personalizzare i fattori di accesso) 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.

D: È possibile consentire all'applicazione di ricordare i dispositivi associati dagli utenti in un pool di utenti di Cognito?

Sì, è possibile abilitare la memorizzazione dei dispositivi usato con l'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, il secondo fattore di accesso potrà inoltre essere annullato.

D: In che modo è possibile eseguire la migrazione degli utenti esistenti in un pool di utenti di Amazon Cognito?

Per eseguire la migrazione degli utenti esistenti in un pool di utenti di Amazon Cognito è possibile usare lo strumento di importazione. Gli attributi degli utenti vengono importati in un file .csv, che può essere caricato tramite console, API o interfaccia a riga di comando. Quando eseguono il primo accesso, gli utenti importanti confermano l'account e creano una nuova password con un codice inviato al loro indirizzo e-mail o al loro telefono. Non sono previsti costi aggiuntivi per l'utilizzo dello strumento di importazione. Per ulteriori informazioni, consultare la documentazione sullo strumento di importazione.

Lo strumento di importazione non esegue la migrazione delle password. Se desideri mantenere le password attuali, la migrazione degli utenti dovrà seguire approcci alternativi, per consentire agli utenti di completare la migrazione singolarmente all'accesso durante un periodo di transizione. Seguendo questa modalità, prima l'app prova a far accedere l'utente con il pool di utenti di Cognito. Se l'utente non risulta nel pool di utenti, l'app consentirà l'accesso all'utente con il sistema di identità esistente, conservando temporaneamente nome utente e password. Dopo l'accesso sul sistema di identità esistente, l'app utilizzerà i medesimi nome utente e password per creare un utente nel pool di utenti di Cognito. Usando questo approccio, il sistema di identità esistente viene conservato durante tutto il periodo di transizione, ma in seguito è possibile usare lo strumento di importazione per importare gli utenti rimanenti (naturalmente, senza le password). 

D: È possibile usare Cognito Identity per creare federazioni di identità e accesso sicuro alle risorse di AWS?
Sì, Cognito Identity permette di autenticare gli utenti tramite un provider di identità esterno e fornisce credenziali di sicurezza temporanee per accedere alle risorse AWS di back-end di un'app o qualsiasi servizio protetto da Amazon API Gateway. 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à.

D: Quali provider di identità pubblici è possibile usare con Amazon Cognito Identity?
È possibile usare Amazon, Facebook, Twitter, Digits, Google e qualsiasi provider che offra compatibilità con OpenID Connect.

D: Cos'è un pool di identità?
I pool di identità sono container utilizzati da Cognito Identity per mantenere organizzate le identità federate dell'applicazione. Un pool di identità associa le identità federate provenienti da provider di identità social con un identificatore utente specifico univoco. 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à.

D: Come funzione il flusso di lavoro di accesso con provider di identità pubblici?
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 OAuth o OpenID Connect oppure l'asserzione SAML restituiti dal provider vengono inoltrati dall'app a Cognito Identity, che restituisce un nuovo ID Cognito per l'utente e configura un set di credenziali AWS temporanee con privilegi limitati.

D: È possibile registrare e autenticare i propri utenti?
Cognito Identity si integra 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 forniti da Cognito Identity, puoi utilizzare il kit SDK client di Cognito Identity per accedere alle risorse AWS e sincronizzare i dati degli utenti. Cognito Identity è un provider di identità gestito che semplifica l'implementazione di strumenti di registrazione e accesso per gli utenti delle tue applicazioni Web e per dispositivi mobili.

D: In che modo Cognito Identity consente di controllare autorizzazioni e accesso ai servizi AWS in modo sicuro?
Cognito Identity assegna agli 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 di AWS IAM 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. Cognito Identity consente 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.

D: Quando viene utilizzato un provider di identità pubblico, Amazon Cognito Identity memorizza le credenziali degli utenti?

No, l'app comunica direttamente con il provider di identità pubblico supportato (Amazon, Facebook, Twitter, Digits, Google 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.

D: Cognito Identity riceve o memorizza informazioni confidenziali sugli utenti dai provider di identità?
No. Cognito Identity non riceve informazioni confidenziali (ad esempio indirizzi e-mail, elenchi di amici o altro) dai provider di identità.

D: Quando si usa Cognito Identity, è comunque necessario disporre di un sistema di autenticazione back-end?
No. 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.

D: Cosa accade se non si desidera obbligare gli utenti ad eseguire l'accesso?
Cognito Identity supporta la creazione e la distribuzione di token sia per utenti autenticati sia per utenti non autenticati. 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.

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

D: Sono supportate identità separate per diversi utenti sullo stesso dispositivo con Cognito Identity?
Sì. Cognito Identity supporta l'uso di identità separate su uno stesso dispositivo, ad esempio su 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.

D: In che modo vengono memorizzati i dati associati a Cognito Identity?
È possibile creare programmaticamente set di dati associati a Cognito Identity e memorizzare i dati 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.

D: Il numero di identità nella console di Cognito Identity corrisponde al numero di utenti che utilizzano un'app?
Il numero di identità nella console di Cognito Identity mostra quante identità sono state create tramite le API di Cognito Identity. 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 di Cognito Identity 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.

Il kit SDK AWS Mobile consente di memorizzare automaticamente nella cache Cognito Identity. Se cerchi una soluzione di analisi completa per la tua app che consenta di tenere traccia di utenti unici, cerca Amazon Mobile Analytics.

D: Cos'è lo storage di sincronizzazione di Amazon Cognito?
Lo storage di sincronizzazione di Amazon Cognito è uno storage di coppie chiave-valore collegato a un'identità di Amazon Cognito. Non c'è alcun limite al numero di identità che puoi creare in pool di identità e storage di sincronizzazione. Ogni identità di Amazon Cognito all'interno dello storage di sincronizzazione dispone del proprio storage di informazioni.

D: I dati vengono salvati direttamente nello storage di sincronizzazione di Amazon Cognito?
No. Il kit SDK AWS Mobile opzionale consente di salvare i dati in un database SQLite sul dispositivo locale, così è possibile accedere ai dati dall'app. I dati vengono quindi inoltrati nello storage di sincronizzazione di Amazon Cognito richiamando il metodo synchronize(); se la sincronizzazione push è abilitata, tutti i dispositivi collegati a un'identità ricevono una notifica relativa alla modifica dei dati nello storage di sincronizzazione tramite Amazon SNS.

D: In che modo vengono memorizzati i dati nello storage di sincronizzazione di Amazon Cognito?
I dati associati con un'identità Amazon Cognito sono organizzati sotto forma di coppie chiave-valore. Una chiave è un'etichetta, ad esempio "MusicVolume"; un valore può essere, ad esempio, "11". Le coppie chiave-valore sono raggruppate e suddivise in categorie mediante set di dati. I set di dati sono partizioni logiche di coppie chiave-valore, nonché l'entità con il maggior livello di granularità impiegata da Amazon Cognito per completare le operazioni di sincronizzazione.

D: Quali sono le dimensioni massime di uno storage di informazioni utente all'interno dello storage di sincronizzazione di Amazon Cognito?
Ogni storage di informazioni utente può occupare fino a 20 MB. Ogni set di dati all'interno dello storage di informazioni utente può contenere fino a 1 MB di dati. All'interno di un set di dati è possibile memorizzare fino a 1024 chiavi.

D: Quale genere di informazioni è possibile memorizzare in un set di dati?
Sia le chiavi sia i valori di un set di dati sono composti da stringhe alfanumeriche. Non esiste un limite alla lunghezza delle stringhe, ma la quantità totale di valori in un set di dati non può superare 1 MB. I dati binari possono essere memorizzati come valore sotto forma di stringhe codificate con Code64, sempre che non superino il limite di 1 MB.

D: Perché esiste la limitazione di 1 MB per i set di dati?
Limitando le dimensioni dei set di dati a 1 MB è più facile che un'attività di sincronizzazione venga completata senza errori e senza un numero troppo elevato di tentativi, anche quando la larghezza di banda è ridotta, consentendo un minor consumo di batteria e di dati (importanti nei piani tariffari dei dispositivi mobili).

D: Le identità utente e gli storage di informazioni utente sono condivisi tra diversi sviluppatori?
No, ogni identità utente e storage di informazioni utente è legato a uno specifico account AWS. Se in un determinato dispositivo sono presenti diverse app di diversi produttori che utilizzano Amazon Cognito, ognuna di esse utilizzare uno storage di informazioni utente creato dal singolo produttore.

D: In che modo è possibile analizzare e applicare query ai dati memorizzati nello storage di Cognito Sync?
Con Cognito Streams, è possibile inoltrare i dati degli storage in un flusso Kinesis all'interno del tuo account AWS. Potrai quindi acquisire questo flusso e memorizzare i dati in modo che sia più semplice analizzarli, ad esempio in un database Amazon Redshift, in un'istanza RDS di tua proprietà o anche in un file S3. AWS ha pubblicato un'applicazione consumer Kinesis di esempio per mostrare come memorizzare i dati degli aggiornamenti in Amazon Redshift.

D: Qual è il vantaggio di utilizzare un flusso Kinesis invece di un'esportazione di database?
Inviando i dati in Kinesis sotto forma di flusso, è possibile ricevere lo storico delle modifiche dei set di dati in tempo reale. Potrai perciò ricevere tutte le modifiche apportate a un set di dati da un utente finale, consentendo la flessibilità necessaria per memorizzare questi dati nello strumento più opportuno.

D: Cosa accade se si dispone già di dati memorizzati in Cognito?
Quando abiliti la funzione di flussi di Kinesis puoi avviare una pubblicazione in blocco. Questo processo permette di inviare in modo asincrono tutti i dati memorizzati nello storage di sincronizzazione di Cognito al flusso Kinesis selezionato.

D: Qual è il prezzo di questa funzionalità?
Cognito consente di inoltrare i dati in un flusso Kinesis di tua proprietà. Quando questa funzionalità è abilitata, non vi è alcuna differenza di prezzo rispetto alla tariffa basata sulla sincronizzazione. Saranno addebitati i costi standard di Kinesis per i tuoi shard.

D: È possibile convalidare i dati prima che vengano memorizzati?
Amazon Cognito Events consente agli sviluppatori di eseguire una funzione AWS Lambda in risposta agli eventi importanti che si verificano in Cognito. L'evento Sync Trigger è un evento che si verifica quando un qualsiasi set di dati è sincronizzato. Gli sviluppatori possono scrivere una funzione AWS Lambda per intercettare l'evento di sincronizzazione. La funzione è in grado di valutare le modifiche del set di dati in esame e manipolare i dati prima che vengano memorizzati nel cloud e sincronizzati con gli altri dispositivi dell'utente. In alternativa, la funzione AWS Lambda può interrompere l'operazione di sincronizzazione in modo da impedire che i dati vengano sincronizzati con gli altri dispositivi dell'utente.

D: In che modo i dati vengono sincronizzati con Amazon Cognito?
Puoi attivare programmaticamente la sincronizzazione dei set di dati tra dispositivi client e lo storage di sincronizzazione di Amazon Cognito utilizzando il metodo synchronize() nel kit SD AWS Mobile. Il metodo synchronize() legge l'ultima versione dei dati disponibile nello storage di sincronizzazione di Amazon Cognito e la confronta alla copia memorizzata in locale nella cache. Dopo il confronto, il metodo synchronize() scrive gli aggiornamenti più recenti nel data store locale e nello storage di sincronizzazione di Amazon Cognito. Di default, Amazon Cognito conserva le ultime versioni dei dati. Puoi modificare questa impostazione in modo da risolvere programmaticamente i conflitti di dati. Inoltre, la sincronizzazione push consente di utilizzare Amazon Cognito per inviare notifiche push silenziose a tutti i dispositivi associati a un'identità per informare della disponibilità di nuovi dati.

D: Cos'è una notifica push silenziosa?
Amazon Cognito usa Amazon Simple Notification Service (SNS) per inviare notifiche push silenziose ai dispositivi. Una notifica push silenziosa è un messaggio push non visibile all'utente ricevuto dall'applicazione sul suo dispositivo.

D: Come si utilizza la sincronizzazione push?
Per abilitare la sincronizzazione push è necessario dichiarare un'applicazione di piattaforma utilizzando la pagina Amazon SNS nella Console di gestione AWS. Dalla pagina dei pool di identità all'interno della pagina di Amazon Cognito della Console di gestione AWS, è quindi possibile collegare l'applicazione di piattaforma SNS al pool di identità di Cognito. Amazon Cognito utilizzerà automaticamente l'applicazione di piattaforma SNS per notificare ai dispositivi eventuali modifiche.

D: In che modo vengono risolto i conflitti che si verificano durante il processo di sincronizzazione?
Di default, Amazon Cognito conserva le ultime versioni dei dati. Puoi modificare questa impostazione scegliendo di rispondere a un callback dal kit SDK AWS Mobile, che conterrà entrambe le versioni dei dati. L'app potrà quindi decidere quale versione dei dati mantenere e salvare nello storage di sincronizzazione di Amazon Cognito (quella locale o quella già nello storage di sincronizzazione di Amazon Cognito).

D: Quanto costa Cognito Identity?
I prezzi di Amazon Cognito sono calcolati in base all'uso effettivo. Non sono previste tariffe minime né impegni anticipati.

Se utilizzi Cognito Identity per creare un pool di utenti, i prezzi si basano esclusivamente sugli utenti mensili attivi o MAU (Monthly Active User). Un utente conta come un MAU se durante un mese di calendario sono presenti operazioni di identità relative a tale utente, ad esempio accessi, registrazioni, aggiornamenti del token e modifiche della password. Nello stesso mese di calendario, non viene addebitato alcun costo per le sessioni successive o per gli utenti inattivi. L'uso opzionale di messaggistica SMS è soggetta a costi aggiuntivi separati, come descritto più avanti.

La funzione Pool di utenti prevede un piano gratuito di 50.000 MAU al mese. Il piano gratuito per Cognito Identity non scade al termine dei 12 mesi di piano gratuito di AWS ed è disponibile sia per i nuovi clienti sia per i vecchi clienti AWS senza termini di tempo.

Le identità federate e i controlli di accesso sicuro per le risorse AWS sono funzioni gratuite di Cognito Identity.

D: Quanto costa Cognito Sync?
I prezzi della sincronizzazione si basano sul volume totale di dati salvati nello spazio di sincronizzazione di Amazon Cognito e sul numero di operazioni di sincronizzazione effettuate. Un'operazione di sincronizzazione confronta lo storage su un dispositivo locale con lo spazio di sincronizzazione di Amazon Cognito nel cloud e ne sincronizza i dati.

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. Al di fuori del piano gratuito, Amazon Cognito costa 0,15 USD per ogni 10.000 operazioni di sincronizzazione e 0,15 USD per GB di spazio di sincronizzazione al mese.

D: Cos'è un'operazione di sincronizzazione?
Richiamare il metodo synchronize() tramite il kit SDK AWS Mobile conta come un'operazione di sincronizzazione. Se richiami direttamente le API del server, viene avviata un'operazione di sincronizzazione quando viene emesso un nuovo token di sessione di sincronizzazione; l'operazione viene completata con un'operazione 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.

D: Cosa sono gli utenti mensili attivi o MAU (Monthly Active User)?
Un utente viene considerato attivo e conta come un MAU se durante un determinato mese di fatturazione sono presenti operazioni di identità associate a tale utente, ad esempio accessi, aggiornamenti del token, registrazioni e modifiche della password. Di conseguenza, non viene fatturato alcun costo per le successive operazioni che si verificano nello stesso mese di fatturazione 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.

D: Quanto costa impiegare la messaggistica SMS con 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.

D: È possibile usare Amazon Cognito all'interno del piano gratuito di AWS?
Sì. Grazie al piano gratuito di AWS, Cognito offre 10 GB di storage di sincronizzazione e 1.000.000 operazioni di sincronizzazione al mese per i primi 12 mesi. Il pool di utenti per Cognito Identity è gratuito per i primi 50.000 utenti mensili attivi; oltre tale numero, sono disponibili diversi scaglioni di prezzo. L'utilizzo della funzione Federated Identities per l'autenticazione degli utenti e la generazione di identificatori univoci è sempre gratuito con Cognito Identity.

D: Tutte le operazioni di lettura o scrittura dall'app contano come operazione di sincronizzazione?
No. 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.

D: Quanto costa il servizio di sincronizzazione push?
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.

D: Quanto costa utilizzare Lambda con Amazon Cognito Events?
Non è previsto alcun costo aggiuntivo per l'utilizzo di Cognito Events 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.