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à.
Importazione di utenti nel bacino d'utenza da un file CSV
Se disponi di un archivio di identità esterno e hai tempo a disposizione per preparare il pool di utenti per nuovi utenti locali, l'importazione in blocco di utenti da un file con valori separati da virgole (CSV) può essere un'opzione semplice ed economica per la migrazione a un pool di utenti di Amazon Cognito. L'importazione di un file CSV consiste nel scaricare e compilare un file modello, per poi consegnarlo al gruppo di utenti in un processo di importazione. Puoi utilizzare un'importazione CSV per creare rapidamente utenti di prova. Puoi anche compilare a livello di codice il file con richieste API di lettura al tuo archivio di identità esterno, quindi analizzarne i dettagli e gli attributi in operazioni di scrittura sul file.
Per impostazione predefinita, il processo di importazione imposta i valori per tutti gli attributi utente tranne la password. Questo significa che i tuoi utenti devono cambiare le loro password dopo il primo accesso. Gli utenti sono in uno RESET_REQUIRED stato quando vengono importati con questo metodo.
In alternativa, puoi importare gli utenti con gli hash delle password esistenti. Quando specifichi un algoritmo di hashing delle password durante la creazione del processo di importazione e includi gli hash delle password nel tuo file CSV, Amazon Cognito importa gli utenti con le password esistenti. Questi utenti vengono creati con uno CONFIRMED stato e possono accedere immediatamente senza reimpostare le password. Per ulteriori informazioni, consulta Importazione di utenti con hash di password.
Il modo più semplice per importare utenti da un file CSV consiste nell'attivare l'accesso senza password nel tuo pool di utenti. Grazie agli attributi dell'indirizzo e-mail e del numero di telefono e alla corretta configurazione del pool di utenti, gli utenti possono accedere con password monouso (OTP) e-mail o SMS subito dopo il completamento del processo di importazione. Per ulteriori informazioni, consulta Necessità degli utenti importati di ripristinare le password.
Puoi anche impostare le password degli utenti con una richiesta AdminSetUserPasswordAPI che imposta il parametro su. Permanent true L'importazione di file CSV non contribuisce al numero di utenti attivi mensili (MAU) fatturati nel tuo pool di utenti. Tuttavia, le operazioni di reimpostazione della password generano MAU. Per gestire i costi quando importi un gran numero di utenti con password che potrebbero non essere immediatamente attivi, configura l'applicazione in modo che richieda agli utenti una nuova password quando accedono e ricevono la sfida. RESET_REQUIRED
Nota
La data di creazione per ogni utente si riferisce al momento in cui tale utente è stato importato nel bacino d'utenza. La data di creazione non è uno degli attributi importati.
Passaggi per creare un processo di importazione degli utenti
-
Crea un ruolo Amazon CloudWatch Logs nella console AWS Identity and Access Management (IAM).
-
Crea il file .csv di importazione degli utenti;
-
Crea ed esegui Web; Facoltativamente, specifica un algoritmo di hashing delle password per importare gli utenti con gli hash delle password esistenti.
-
Carica il file .csv di importazione degli utenti;
-
Avvia ed esegui Web;
-
Utilizzato CloudWatch per controllare il registro degli eventi.
-
Se non hai importato gli hash delle password, richiedi agli utenti importati di reimpostare le proprie password.
Altre risorse
-
Esportazione dei profili utente di Cognito: architettura di riferimento per l'
esportazione degli account utente tra pool di utenti
Argomenti
Creazione del ruolo CloudWatch Logs IAM
Se utilizzi la CLI o l'API di Amazon Cognito, devi creare un ruolo IAM. CloudWatch La procedura seguente descrive come creare un ruolo IAM che Amazon Cognito può utilizzare per scrivere i risultati del processo di importazione in Logs. CloudWatch
Nota
Quando crei un processo di importazione nella console di Amazon Cognito, puoi creare il ruolo IAM contemporaneamente. Quando scegli l'operazione Create a new IAM role (Crea un nuovo ruolo IAM), Amazon Cognito applica automaticamente la policy di attendibilità e la policy IAM appropriate al ruolo.
Per creare il ruolo IAM di CloudWatch Logs per l'importazione del pool di utenti (AWS CLI, API)
Accedi Console di gestione AWS e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/
. -
Crea un nuovo ruolo IAM per un Servizio AWS. Per istruzioni dettagliate, consulta Creazione di un ruolo per un servizio Servizio AWS nella Guida per l'utente di AWS Identity and Access Management .
-
Quando selezioni un Use Case (Caso d'uso) per Trusted entity type (Tipo di entità attendibile), scegli qualsiasi servizio. Amazon Cognito non è attualmente elencato nei casi d'uso dei servizi.
-
Nella schermata Add permissions (Aggiungi autorizzazioni), scegli Create policy (Crea policy) e inserisci la seguente istruzione della policy. Sostituiscilo
REGIONcon il tuo pool Regione AWS di utenti, ad esempious-east-1. SostituisciloACCOUNTcon il tuo Account AWS ID, ad esempio111122223333.
-
-
Poiché non hai scelto Amazon Cognito come entità attendibile quando hai creato il ruolo, ora devi modificare manualmente la relazione di trust del ruolo. Seleziona Roles (Ruoli) nel pannello di navigazione della console IAM, quindi scegli il nuovo ruolo creato.
-
Seleziona la scheda Relazioni di attendibilità
-
Seleziona Modifica policy di attendibilità.
-
Incolla la seguente istruzione della policy in Edit trust policy (Modifica policy di attendibilità), sostituendo qualsiasi testo esistente:
-
Scegli Update policy (Aggiorna policy).
-
Nota l'ARN del ruolo . Quando si crea processo di importazione, è necessario fornire l'ARN.
Creazione di un file CSV di importazione degli utenti
Prima di poter importare gli utenti esistenti nel pool di utenti, è necessario creare un file CSV contenente gli utenti che si desidera importare e i relativi attributi. Dal pool di utenti, è possibile recuperare un file di importazione utente con intestazioni che riflettono lo schema di attributi del pool di utenti. È quindi possibile inserire le informazioni utente che soddisfano i requisiti di formattazione in Formattazione del file CSV.
Download dell'intestazione del file CSV (console)
Utilizza la seguente procedura per scaricare il file di intestazione CSV.
Per eseguire il download dell'intestazione del file CSV
-
Passa alla console Amazon Cognito
. È possibile che ti vengano richieste le AWS credenziali. -
Scegli User Pools (bacini d'utenza).
-
Scegli un bacino d'utenza esistente dall'elenco.
-
Scegli il menu Utenti.
-
Nella sezione Import users (Importa utenti), scegli Create an import job (Crea un processo di importazione).
-
In Upload CSV (Carica CSV), seleziona il link template.csv e scarica il file CSV.
Scaricamento dell'intestazione del file CSV (AWS CLI)
Per ottenere un elenco delle intestazioni corrette, dal menu Utenti in Importa utenti, seleziona Crea processo di importazione. Nella finestra di dialogo che segue, seleziona il template.csv link per scaricare un file modello con gli attributi del tuo pool di utenti.
Puoi anche eseguire il seguente comando CLI, USER_POOL_ID dov'è l'identificatore del pool di utenti per il pool di utenti in cui importerai gli utenti:
aws cognito-idp get-csv-header --user-pool-id "USER_POOL_ID"
Risposta di esempio:
{ "CSVHeader": [ "name", "given_name", "family_name", "middle_name", "nickname", "preferred_username", "profile", "picture", "website", "email", "email_verified", "gender", "birthdate", "zoneinfo", "locale", "phone_number", "phone_number_verified", "address", "updated_at", "cognito:mfa_enabled", "cognito:username" ], "UserPoolId": "USER_POOL_ID" }
Formattazione del file CSV
L'aspetto del file di intestazione CSV di importazione degli utenti scaricato è il seguente: Include anche eventuali attributi personalizzati aggiunti al pool di utenti.
cognito:username,name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled
Modificare il file CSV, in modo che includa questa intestazione e i valori di attributo per gli utenti. Il file viene formattato in base ai seguenti criteri:
Nota
Per ulteriori informazioni sui valori di attributo, ad esempio il formato corretto per i numeri di telefono, consulta Utilizzo degli attributi utente.
-
La prima riga nel file è la riga di intestazione scaricata, che contiene i nomi di attributo degli utenti.
-
L'ordine delle colonne nel file CSV non è rilevante.
-
Ogni riga, dopo la prima, contiene i valori di attributo per un utente.
-
Tutte le colonne nell'intestazione devono essere presenti, ma non è necessario che tu fornisca valori in ogni colonna;
-
I seguenti attributi sono necessari:
-
cognito:username
-
email_verified o phone_number_verified
-
Almeno uno degli attributi verificato automaticamente deve essere
trueper ogni utente. Un attributo verificato automaticamente è un indirizzo e-mail o un numero di telefono a cui Amazon Cognito invia automaticamente un codice quando un nuovo utente si unisce al pool di utenti. -
Il pool di utenti deve avere almeno un attributo verificato automaticamente, email_verified o phone_number_verified. Se il bacino d'utenza non ha attributi verificati automaticamente, il processo di importazione non verrà avviato.
-
Se il bacino d'utenza ha un attributo verificato automaticamente, tale attributo deve essere verificato per ogni utente. Ad esempio, se il bacino d'utenza ha solo phone_number come attributo verificato automaticamente, il valore phone_number_verified deve essere
trueper ogni utente.
Nota
Affinché gli utenti reimpostino le password, devono avere una e-mail o un numero di telefono verificati. Amazon Cognito invia un messaggio contenente un codice di reimpostazione della password all'e-mail o al numero di telefono specificati nel file CSV. Se il messaggio viene inviato al numero di telefono, è inviato tramite SMS. Per ulteriori informazioni, consulta Verifica delle informazioni di contatto al momento della registrazione.
-
-
e-mail (se email_verified è
true) -
phone_number (se phone_number_verified è
true) -
Tutti gli attributi che hai contrassegnato come richiesto quando hai creato il bacino d'utenza
-
-
I valori di attributo che sono stringhe dovrebbero non essere tra virgolette;
-
Se il valore di un attributo contiene una virgola, è necessario inserire una barra rovesciata (\) prima della virgola. Questo perché i campi in un file CSV sono separati da virgole.
-
Il contenuto del file CSV deve essere in UTF-8 formato senza l'ordine dei byte.
-
Il campo cognito:username è obbligatorio e deve essere univoco all'interno del tuo bacino d'utenza. Può essere qualsiasi stringa Unicode. Tuttavia, non può contenere spazi o schede;
-
I valori della data di nascita, se presenti, devono essere nel formato.
mm/dd/yyyyCiò significa, ad esempio, che una data di nascita corrispondente al 1 febbraio 1985 deve essere codificata come02/01/1985. -
Il campo cognito:mfa_enabled deve corrispondere ai requisiti MFA del tuo pool di utenti. Se hai impostato l'autenticazione a più fattori (MFA) come obbligatoria nel tuo pool di utenti, questo campo deve
trueessere o vuoto per tutti gli utenti. Se hai impostato la modalità MFA come disattivata, questo campo deve esserefalseo vuoto per tutti gli utenti. Un valore vuoto imposta MFA-enabled lo stato degli utenti importati sullo stato richiesto dal pool di utenti. È possibile importare utenti in un pool di MFA-required utenti senza un fattore MFA valido, indipendentemente dal fatto che si imposti uncognito:mfa_enabledvalore. Gli utenti in questo stato hanno la MFA attiva ma non possono accedere finché non configurano un attributo email, un attributo numero di telefono o un TOTP e tale configurazione è un fattore MFA valido nel tuo pool di utenti. -
La lunghezza massima è 16.000 caratteri.
-
Il file CSV può avere una dimensione massima di 100 MB.
-
Il numero massimo di righe (utenti) nel file è 500.000. In questo valore massimo non è inclusa la riga di intestazione.
-
Il valore del campo updated_at dovrebbe essere un periodo di tempo espresso in secondi, per esempio:
1471453471. -
Qualsiasi spazio, iniziale o finale in un valore di attributo, verrà tagliato.
L'elenco seguente è un esempio di file di importazione CSV per un pool di utenti senza attributi personalizzati. Lo schema del pool di utenti potrebbe differire da questo esempio. In tal caso, è necessario fornire valori di test nel modello CSV scaricato dal pool di utenti.
cognito:username,name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled John,,John,Doe,,,,,,,johndoe@example.com,TRUE,,02/01/1985,,,+12345550100,TRUE,123 Any Street,,FALSE Jane,,Jane,Roe,,,,,,,janeroe@example.com,TRUE,,01/01/1985,,,+12345550199,TRUE,100 Main Street,,FALSE
Creazione ed esecuzione del processo di importazione del bacino d'utenza di Amazon Cognito
Questa sezione descrive come creare ed eseguire il processo di importazione del pool di utenti utilizzando la console Amazon Cognito e AWS Command Line Interface ()AWS CLI.
Importazione di utenti da un file CSV (console)
Nella procedura seguente viene descritto come importare gli utenti dal file CSV.
Per importare gli utenti da un file CSV (console)
-
Passa alla console Amazon Cognito
. È possibile che ti vengano richieste le credenziali AWS . -
Scegli User Pools (bacini d'utenza).
-
Scegli un bacino d'utenza esistente dall'elenco.
-
Scegli il menu Utenti.
-
Nella sezione Import users (Importa utenti), scegli Create an import job (Crea un processo di importazione).
-
Nella pagina Create import job (Crea processo di importazione), inserisci un Job name (Nome processo).
-
Scegli l'operazione Create a new IAM role (Crea un nuovo ruolo IAM) o Use an existing IAM role (Utilizza un ruolo IAM esistente).
-
Se hai scelto Create a new IAM role (Crea un nuovo ruolo IAM), inserisci un nome per il nuovo ruolo. Amazon Cognito creerà automaticamente un ruolo con le autorizzazioni e le relazioni di affidabilità corrette. Il principale IAM che crea il processo di importazione deve disporre delle autorizzazioni per creare ruoli IAM.
-
Se hai scelto Use an existing IAM role (Utilizza un ruolo IAM esistente), scegli un ruolo dall'elenco in IAM role selection (Selezione del ruolo IAM). Questo ruolo deve disporre delle autorizzazioni e della policy di attendibilità descritte in Creazione del ruolo CloudWatch Logs IAM.
-
-
In Carica CSV, scegli Scegli file e allega il file CSV che hai preparato.
-
Scegli Create job (Crea processo) per inviare il processo, ma avvialo in un secondo momento. Scegli Create and start job (Crea e avvia il processo) per inviare il processo e avviarlo immediatamente.
-
Se hai creato il processo ma non l'hai avviato, puoi avviarlo in un secondo momento. Nel menu Utenti, sotto Importa utenti, scegli il processo di importazione, quindi seleziona Avvia. Puoi anche inviare una richiesta StartUserImportJobAPI da un AWS SDK.
-
Monitora lo stato di avanzamento del processo di importazione degli utenti nel menu Utenti sotto Importa utenti. Se il processo non va a buon fine, puoi selezionare il valore Status (Stato). Per ulteriori dettagli, seleziona Visualizza CloudWatch i log per maggiori dettagli ed esamina eventuali problemi nella console CloudWatch Logs.
Importazione di utenti (AWS CLI)
I seguenti comandi della CLI sono disponibili per importare gli utenti in un bacino d'utenza:
-
create-user-import-job -
get-csv-header -
describe-user-import-job -
list-user-import-jobs -
start-user-import-job -
stop-user-import-job
Per l'elenco delle opzioni della riga di comando per questi comandi, utilizza l'opzione help della riga di comando. Ad esempio:
aws cognito-idp get-csv-header help
Creazione di un processo di importazione degli utenti
Dopo aver creato il file CSV, crea un processo di importazione utenti eseguendo il seguente comando CLI, JOB_NAME dove è il nome che scegli per il processoUSER_POOL_ID, l'ID del pool di utenti per il pool di utenti a cui verranno aggiunti i nuovi utenti ROLE_ARN e il ruolo ARN in cui hai ricevuto: Creazione del ruolo CloudWatch Logs IAM
aws cognito-idp create-user-import-job --job-name "JOB_NAME" --user-pool-id "USER_POOL_ID" --cloud-watch-logs-role-arn "ROLE_ARN"
Il valore PRE_SIGNED_URL restituito nella risposta è valido per 15 minuti. Dopo questo lasso di tempo scadrà e, a quel punto, è necessario creare un processo di importazione degli utenti per ottenere un nuovo URL.
Esempio risposta:
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }
Valori di stato per un processo di importazione degli utenti
Nelle risposte ai comandi di importazione degli utenti, visualizzerai uno dei seguenti valori Status:
-
Created: Il processo è stato creato, ma non avviato. -
Pending: Stato di transizione. Hai avviato il processo, ma questo non ha ancora iniziato a importare gli utenti; -
InProgress: Il processo è stato avviato e gli utenti sono in fase di importazione. -
Stopping: Hai interrotto il processo, ma questo non ha ancora cessato l'importazione degli utenti. -
Stopped: Hai interrotto il processo e quest'ultimo ha cessato l'importazione degli utenti. -
Succeeded: La fase ha avuto esito positivo. -
Failed: Il processo è stato interrotto a causa di un errore. -
Expired: Hai creato un processo, ma non lo hai avviato entro 24-48 ore. Tutti i dati associati al processo sono stati eliminati e il processo non può essere avviato.
Caricamento del file CSV
Utilizza il seguente comando curl per caricare il file CSV contenente i dati dell'utente nell'URL prefirmato che hai ottenuto dalla risposta del comando create-user-import-job.
curl -v -T "PATH_TO_CSV_FILE" -H "x-amz-server-side-encryption:aws:kms" "PRE_SIGNED_URL"
Nell'output di questo comando, cerca la frase "We are completely uploaded and
fine". Questa frase indica che il file è stato caricato correttamente. I tuoi pool di utenti non conservano le informazioni nei file di importazione dopo aver eseguito i processi di importazione. Una volta completati o scaduti, Amazon Cognito elimina il file CSV caricato.
Descrizione di un processo di importazione degli utenti
Per ottenere una descrizione del processo di importazione degli utenti, utilizza il seguente comando, dove si USER_POOL_ID trova l'ID del pool di utenti e JOB_ID l'ID del lavoro restituito quando hai creato il processo di importazione degli utenti.
aws cognito-idp describe-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
Esempio Risposta di esempio:
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }
Nell'output di esempio precedente, PRE_SIGNED_URL è l'URL in cui hai caricato il file CSV. ROLE_ARNÈ l'ARN del ruolo CloudWatch Logs che hai ricevuto quando hai creato il ruolo.
Elenco dei tuoi processi di importazione degli utenti
Per elencare i tuoi processi di importazione degli utenti, utilizza il comando seguente:
aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 2
Esempio Risposta di esempio:
{ "UserImportJobs": [ { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 }, { "CompletionDate": 1470954227.701, "StartDate": 1470954226.086, "Status": "Failed", "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "CompletionMessage": "Too many users have failed or been skipped during the import.", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 5, "CreationDate": 1470953929.313 } ], "PaginationToken": "PAGINATION_TOKEN" }
I processi sono elencati in ordine cronologico dall'ultimo creato al primo. La PAGINATION_TOKEN stringa dopo il secondo processo indica che ci sono risultati aggiuntivi per questo comando list. Per elencare i risultati aggiuntivi, utilizza l' opzione --pagination-token come segue:
aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 10 --pagination-token "PAGINATION_TOKEN"
Avvio di un processo di importazione degli utenti
Per avviare un processo di importazione degli utenti, utilizza il comando seguente:
aws cognito-idp start-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
Può essere attivo soltanto un processo di importazione alla volta per account.
Esempio Risposta di esempio:
{ "UserImportJob": { "Status": "Pending", "StartDate": 1470957851.483, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }
Arresto di un processo di importazione degli utenti
Per arrestare un processo di importazione degli utenti mentre è in corso, utilizza il comando seguente. Una volta che hai interrotto il processo, non puoi riavviarlo.
aws cognito-idp stop-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
Esempio Risposta di esempio:
{ "UserImportJob": { "CompletionDate": 1470958050.571, "StartDate": 1470958047.797, "Status": "Stopped", "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "CompletionMessage": "The Import Job was stopped by the developer.", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957972.387 } }
Visualizzazione dei risultati di importazione del pool di utenti nella CloudWatch console
Puoi visualizzare i risultati del tuo processo di importazione nella CloudWatch console Amazon.
Visualizzazione dei risultati
I seguenti passaggi descrivono come visualizzare i risultati dell'importazione del bacino d'utenza.
Visualizzazione dei risultati dell'importazione del bacino d'utenza
Accedi Console di gestione AWS e apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/
. -
Scegliere Logs (Log).
-
Scegli il gruppo di log per i tuoi processi di importazione del bacino d'utenza. Il nome del gruppo di log è del tipo
/aws/cognito/userpools/.USER_POOL_ID/USER_POOL_NAME -
Scegli il log per il processo di importazione degli utenti che hai appena eseguito. Il nome del registro è nel formato
JOB_ID/JOB_NAME. I risultati nel log si riferiscono ai i tuoi utenti per numero di linea. Nessun dato degli utenti viene scritto nel log. Per ogni utente, viene visualizzata una linea simile a quella riportata di seguito:-
[SUCCEEDED] Line Number 5956 - The import succeeded. -
[SKIPPED] Line Number 5956 - The user already exists. -
[FAILED] Line Number 5956 - The User Record does not set any of the auto verified attributes to true. (Example: email_verified to true).
-
Interpretazione dei risultati
Lo stato degli utenti importati con successo è impostato su "PasswordReset».
Nei seguenti casi, l'utente non verrà importato, ma il processo di importazione proseguirà:
-
Nessun attributo verificato automaticamente è impostato su
true. -
I dati dell'utente non corrispondono allo schema;
-
Non è stato possibile importare l'utente a causa di un errore interno.
Nei seguenti casi, il processo di importazione fallirà:
-
Il ruolo Amazon CloudWatch Logs non può essere assunto, non ha la politica di accesso corretta o è stato eliminato.
-
Il bacino d'utenza è stato eliminato.
-
Amazon Cognito non è in grado di analizzare il file .csv.
Necessità degli utenti importati di ripristinare le password
Se il tuo pool di utenti offre solo l'accesso basato su password, gli utenti devono reimpostare le password dopo l'importazione. La prima volta che accedono, possono inserire qualsiasi password. Amazon Cognito richiede loro di inserire una nuova password nella risposta API alla richiesta di accesso della tua applicazione.
Se il tuo pool di utenti dispone di fattori di autenticazione senza password, Amazon Cognito utilizza per impostazione predefinita quelli per gli utenti importati. Non viene loro richiesta una nuova password e possono accedere immediatamente con un'e-mail o un SMS OTP senza password. Puoi anche richiedere agli utenti di impostare una password in modo che possano completare altri metodi di accesso come nome utente-password e passkey. Le seguenti condizioni si applicano all'accesso senza password dopo l'importazione dell'utente.
-
È necessario importare gli utenti con un attributo che corrisponda a un fattore di accesso senza password disponibile. Se gli utenti possono accedere con un indirizzo e-mail, è necessario importare un attributo.
emailSe si tratta di un numero di telefono, è necessario importare unphone_numberattributo. Se entrambi, importa un valore per entrambi gli attributi. -
Normalmente, gli utenti importano in uno
RESET_REQUIREDstato in cui devono reimpostare la password. Se vengono importati con la possibilità di accedere con un fattore senza password, Amazon Cognito imposta il loro stato su.CONFIRMED
Per ulteriori informazioni sull'autenticazione senza password, incluso come configurarla e come costruire il flusso di autenticazione nella tua applicazione, consulta. Autenticazione con pool di utenti Amazon Cognito
La procedura seguente descrive l'esperienza utente in un meccanismo di accesso personalizzato con utenti locali RESET_REQUIRED dopo l'importazione di un file CSV. Se i tuoi utenti accedono con accesso gestito, chiedi loro di selezionare la password dimenticata? opzione, fornisci il codice contenuto nell'e-mail o nel messaggio di testo e imposta una password.
Necessità degli utenti importati di ripristinare le password
-
Nell'app, tenta di accedere silenziosamente per l'utente corrente con
InitiateAuthutilizzando una password casuale. -
Amazon Cognito restituisce
NotAuthorizedExceptionquandoPreventUserExistenceErrorsè abilitato. In caso contrario, restituiscePasswordResetRequiredException. -
L'app effettua una richiesta API
ForgotPassworde reimposta la password dell'utente.-
L'app invia il nome utente in una richiesta API
ForgotPassword. -
Amazon Cognito invia un codice all'indirizzo e-mail o al numero di telefono verificato. La destinazione dipende dai valori forniti per
email_verifiedephone_number_verifiednel file CSV. La risposta alla richiestaForgotPasswordindica la destinazione del codice.Nota
Il pool di utenti deve essere configurato per verificare le e-mail o i numeri di telefono. Per ulteriori informazioni, consulta Registrazione e conferma degli account utente.
-
L'app visualizza un messaggio all'utente per verificare la posizione di invio del codice e richiede all'utente di inserire il codice e una nuova password.
-
L'utente inserisce il codice e la nuova password nell'app;
-
L'app invia il codice e la nuova password in una richiesta API
ConfirmForgotPassword. -
L'app reindirizza l'utente per l'accesso.
-
Importazione di utenti con hash di password
Quando esegui la migrazione degli utenti da un sistema di autenticazione esistente ad Amazon Cognito, puoi importare gli hash delle loro password insieme agli attributi utente. I tuoi utenti possono quindi accedere immediatamente con le password esistenti, senza dover reimpostare la password. Dopo che gli utenti accedono per la prima volta, Amazon Cognito migra in modo trasparente le proprie credenziali al sistema di autenticazione nativo di Amazon Cognito.
Importante
Al momento l'importazione di hash delle password non è disponibile per tutti i pool di utenti. L'importazione di hash delle password richiede la moderna infrastruttura Amazon Cognito con funzionalità e scalabilità avanzate. Alcuni pool di utenti utilizzano ancora un'infrastruttura precedente e li AWS aggiorneranno alla nuova infrastruttura, che sblocca questa funzionalità. Nella console Amazon Cognito, i pool di utenti idonei visualizzano l'opzione dell'algoritmo di hashing delle password durante la creazione di processi di importazione, mentre i pool non idonei non visualizzano questa opzione. Per ulteriori informazioni, consulta Amazon Cognito sblocca funzionalità avanzate con un'infrastruttura di nuova generazione
Come funziona l'importazione di hash delle password
Con l'importazione dell'hash delle password, puoi migrare gli utenti preservando la loro capacità di accedere con le password esistenti. Il processo di importazione funziona come segue:
-
Si crea un processo di importazione e si specifica l'algoritmo di hashing delle password utilizzato dal sistema di origine per creare gli hash delle password.
-
Includi la
password_hashcolonna nel tuo file CSV con il valore hash della password di ogni utente. -
Amazon Cognito importa gli utenti con gli hash delle password e li crea con uno stato.
CONFIRMEDGli utenti possono accedere immediatamente. -
Quando un utente accede per la prima volta, Amazon Cognito verifica la password in base all'hash importato. Una volta completata la verifica, Amazon Cognito migra le credenziali dell'utente al sistema di autenticazione nativo.
-
Tutti gli accessi successivi utilizzano il sistema di autenticazione nativo di Amazon Cognito.
Importante
Tutti gli hash delle password in un singolo processo di importazione devono utilizzare lo stesso algoritmo. L'algoritmo viene specificato a livello di processo quando si crea il processo di importazione.
Nota
Fino a quando un utente non completa il primo accesso e Amazon Cognito non migra le proprie credenziali, non puoi utilizzare l'autenticazione Secure Remote Password (SRP) per quell'utente. Utilizza i nostri ADMIN_USER_PASSWORD_AUTH flussi USER_PASSWORD_AUTH per gli utenti con hash di password importati che non hanno ancora effettuato l'accesso.
Algoritmi di hashing delle password supportati
Amazon Cognito supporta i seguenti algoritmi di hashing delle password per l'importazione:
BCRYPT-
La funzione hash adattiva bcrypt. Amazon Cognito estrae tutti i parametri richiesti (sale, fattore di costo) dalla stringa hash.
Format:
$2<a/b/x/y>$[cost]$[22-char salt][31-char hash]Esempio:
$2b$10$CtA.Rcu/szzn9U00wpUjOuN3vrgJRZycv4aOzcP3GzqzO8UDPEFq6Fattore di costo massimo: 10
SCRYPT-
La funzione di derivazione delle chiavi basata su password di scrypt. Amazon Cognito estrae tutti i parametri richiesti dalla stringa hash.
Format:
N$r$p$hexSalt$hexHashEsempio:
65536$8$1$304dbaef7c5e828dc19c98f0600d18fe$4f69c498c12cd102d057356facf8d77e8d42407090491ea32c5b038f5a18c099Parametri massimi: N (CPU/memory costo) = 65536, r (dimensione del blocco) = 8, p (parallelismo) = 1
ARGON2ID-
L'algoritmo di hashing delle password Argon2id. Amazon Cognito estrae tutti i parametri richiesti dalla stringa hash.
Format:
$argon2id$v=N$m=M,t=T,p=P$salt$hashEsempio:
$argon2id$v=19$m=19456,t=2,p=1$ko/G5o1ms+ML08P95sQ8DA$AkVbvWSOqz7Hs3qthhWKxicOWnGLN+MBmpwc3emi5VAParametri massimi: m (memoria in KB) = 19456, t (iterazioni) = 2, p (parallelismo) = 1
PBKDF2_SHA256-
Password-Based Funzione di derivazione chiave 2 con. SHA-256 Amazon Cognito estrae tutti i parametri richiesti dalla stringa hash.
Format:
$pbkdf2-sha256$iterations$salt$hashEsempio:
$pbkdf2-sha256$600000$1XZlmwLQ2hhM3JYuCPiArQ$Pfheg9Zi/v5lXU4yyLA0WFUYEd/rlaVbzrM9oMD6IrAIterazioni massime: 600000
Nota
Tutti gli algoritmi supportati sono autodescrittivi, il che significa che Amazon Cognito può estrarre tutti i parametri richiesti (come sale, fattore di costo e iterazioni) direttamente dalla stringa hash. Devi solo specificare il nome dell'algoritmo quando crei il processo di importazione.
Se l'hash della password ha valori di parametro che superano i limiti massimi sopra elencati, l'importazione non riesce per quell'utente. Controlla la configurazione dell'hashing delle password del sistema di origine prima dell'importazione per garantire la compatibilità.
Aggiungere gli hash delle password al file CSV
Quando scarichi il modello CSV per l'importazione da parte dell'utente, il modello include una colonna. password_hash Compila questa colonna con i valori hash delle password per gli utenti che desideri importare con le password esistenti.
Regole di formattazione CSV per l'importazione degli hash delle password
-
La
password_hashcolonna è obbligatoria quando il processo di importazione specifica un algoritmo di hashing delle password. Se lasci il valore vuoto per un utente specifico, Amazon Cognito importa quell'utente senza password e imposta l'utente sullo stato.RESET_REQUIRED -
Se il processo di importazione specifica un algoritmo di hashing delle password ma il file CSV non include una
password_hashcolonna, il processo ha esito negativo. -
Se il valore hash di una password non è valido o non corrisponde al formato previsto per l'algoritmo specificato, l'importazione non riesce per quell'utente. Amazon Cognito non crea l'utente e registra l'errore nei log di Amazon CloudWatch Logs.
-
I valori hash delle password fanno distinzione tra maiuscole e minuscole. Assicurati che corrispondano al formato esatto previsto dall'algoritmo.
Esempio Esempio di CSV con hash delle password
L'esempio seguente mostra un file CSV che importa utenti con hash di password bcrypt:
cognito:username,email,email_verified,phone_number,phone_number_verified,password_hash alejandro_rosalez,alejandro_rosalez@example.com,TRUE,+12345550100,TRUE,$2b$10$CtA.Rcu/szzn9U00wpUjOuN3vrgJRZycv4aOzcP3GzqzO8UDPEFq6 mary_major,mary_major@example.com,TRUE,+12345550199,TRUE,$2b$10$CtA.Rcu/szzn9U00wpUjOuN3vrgJRZycv4aOzcP3GzqzO8UDPEFq6
Creazione di un processo di importazione con hash di password (AWS CLI)
Per importare utenti con hash di password, è necessario specificare l'algoritmo di hashing delle password quando si crea il processo di importazione. Tutti gli utenti del processo di importazione devono utilizzare lo stesso algoritmo.
Utilizzate il AWS Command Line Interface comando seguente per creare un processo di importazione con hash di password. Il --password-hashing-algorithm parametro specifica l'algoritmo utilizzato per creare gli hash delle password nel file CSV.
aws cognito-idp create-user-import-job \ --job-name "JOB_NAME" \ --user-pool-id "USER_POOL_ID" \ --cloud-watch-logs-role-arn "ROLE_ARN" \ --password-hashing-algorithmBCRYPT
Sostituisci BCRYPT con uno degli algoritmi supportati:BCRYPT,, SCRYPT o. ARGON2ID PBKDF2_SHA256
Esempio Risposta di esempio
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "PasswordHashingAlgorithm": "BCRYPT", "FailedUsers": 0, "CreationDate": 1470957431.965 } }
La risposta include il PasswordHashingAlgorithm campo che conferma l'algoritmo specificato. Carica il file CSV nell'URL predefinito e avvia il processo come descritto in. Caricamento del file CSV
Esperienza utente dopo l'importazione dell'hash della password
Gli utenti importati con gli hash delle password hanno la seguente esperienza:
-
Accesso immediato: gli utenti possono accedere con le password esistenti subito dopo l'importazione. Gli utenti non ricevono una richiesta di reimpostazione delle password.
-
Stato utente: Amazon Cognito crea questi utenti con uno
CONFIRMEDstato invece di.RESET_REQUIRED -
Migrazione trasparente: quando gli utenti accedono per la prima volta, Amazon Cognito verifica la password in base all'hash importato. Una volta completata la verifica, Amazon Cognito migra le credenziali al sistema di autenticazione nativo. Tutti gli accessi successivi utilizzano il sistema nativo.
-
Latenza di accesso iniziale: il primo accesso per gli utenti con hash di password importati potrebbe richiedere leggermente più tempo rispetto agli accessi successivi. Amazon Cognito deve verificare la password rispetto all'hash importato e migrare le credenziali al sistema di autenticazione nativo.
-
Reimpostazione della password: se un utente reimposta la password prima del primo accesso, l'hash della password importato viene sostituito con una nuova password utilizzando il sistema di autenticazione nativo di Amazon Cognito.
Risoluzione degli errori di importazione dell'hash delle password
Se l'importazione dell'hash della password non riesce per un utente, Amazon Cognito registra l'errore nei log di CloudWatch Amazon Logs. Gli scenari di errore più comuni includono:
- Hash malformato
-
L'hash della password non corrisponde al formato previsto per l'algoritmo specificato. Verifica che il formato hash sia corretto e corrisponda a uno dei formati elencati in. Algoritmi di hashing delle password supportati
- Parametro fuori dai limiti
-
L'hash della password contiene valori di parametro (come il fattore di costo o le iterazioni) che superano i valori massimi consentiti. Per gli utenti con hash incompatibili, scegliete una delle seguenti opzioni:
-
Importa quegli utenti senza l'hash della password lasciando il
password_hashcampo vuoto. Amazon Cognito li imposta sulloRESET_REQUIREDstato e devono reimpostare le password al primo accesso. -
Utilizza un trigger Lambda per la migrazione degli utenti per migrare tali utenti al momento dell'accesso anziché tramite l'importazione in formato CSV.
-
Prima di disattivare il sistema di origine, esegui nuovamente il hash delle password con parametri compatibili quando gli utenti accedono al sistema esistente.
-
- Mancata corrispondenza dell'algoritmo
-
L'hash della password è stato creato con un algoritmo diverso da quello specificato nel processo di importazione. Tutti gli hash di un singolo processo di importazione devono utilizzare lo stesso algoritmo. Se hai utenti con algoritmi diversi, crea processi di importazione separati per ogni algoritmo.
- Colonna password_hash mancante
-
Hai specificato un algoritmo di hashing delle password durante la creazione del lavoro, ma il file CSV non include la colonna.
password_hashAggiungi la colonna al tuo file CSV o crea un nuovo lavoro senza specificare un algoritmo.
Quando l'importazione dell'hash di una password non riesce per un utente, Amazon Cognito non crea l'utente. Gli altri utenti coinvolti nel processo di importazione continuano a essere elaborati. Controlla i log di Amazon CloudWatch Logs per identificare gli utenti che hanno fallito e il motivo di ogni errore.
Considerazioni sulla sicurezza per l'importazione di hash delle password
Amazon Cognito applica misure di sicurezza aggiuntive agli hash delle password importati:
-
Doppio hashing: Amazon Cognito esegue nuovamente l'hash di tutte le password importate con un ulteriore livello di protezione crittografica prima dell'archiviazione, indipendentemente dalla forza dell'algoritmo originale.
-
Migrazione automatica: dopo il successo della prima autenticazione, Amazon Cognito migra le credenziali dell'utente al protocollo Secure Remote Password (SRP) nativo utilizzato da Amazon Cognito. Ciò garantisce che tutti gli utenti utilizzino alla fine il meccanismo di autenticazione nativo ad alta sicurezza.
-
Pulizia dei dati: una volta completato il processo di importazione, Amazon Cognito rimuove il file CSV caricato contenente gli hash delle password dallo spazio di archiviazione temporaneo.
Importante
Tratta il file CSV contenente gli hash delle password come dati sensibili. Proteggilo in transito ed eliminalo in modo sicuro dopo il completamento dell'importazione.