Risoluzione dei problemi relativi ad Amazon Cognito - Amazon Cognito

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

Risoluzione dei problemi relativi ad Amazon Cognito

Questo capitolo fornisce soluzioni ai problemi più comuni che potresti incontrare mentre lavori con Amazon Cognito. Le implementazioni di Amazon Cognito possono affrontare diverse sfide relative ai flussi di autenticazione, alle configurazioni dei pool di utenti e alle configurazioni di federazione delle identità. Che tu stia sviluppando una nuova applicazione o gestendo una esistente, questa guida alla risoluzione dei problemi ti aiuta a identificare e risolvere rapidamente i problemi più comuni.

Errori di configurazione del dominio personalizzato

Durante la configurazione di nomi di dominio personalizzati in Amazon Cognito, potresti ricevere messaggi di errore. Gli errori più comuni includono problemi di convalida, problemi con i certificati o conflitti di dominio.

Custom domain is not a valid subdomain

Questo errore indica un problema con la risoluzione DNS per il dominio principale. Amazon Cognito non supporta i domini di primo livello e richiede che il dominio principale disponga di un record DNS A per la convalida.

Problema

Questo errore indica un problema con la risoluzione DNS per il dominio principale. Amazon Cognito non supporta i domini di primo livello e richiede che il dominio principale disponga di un record DNS A per la convalida.

Soluzione
  • Crea un record A per il dominio principale: devi creare un record A nella configurazione DNS per il dominio principale del tuo dominio personalizzato.

    • Esempio: se il tuo dominio personalizzato èauth.xyz.yourdomain.com, il dominio principale èxyz.yourdomain.com. Se desideri configurarlo xyz.yourdomain.com come dominio personalizzato, il dominio principale èyourdomain.com.

    • Il dominio principale deve essere risolto in un indirizzo IP valido. Se non punta a un indirizzo IP reale, puoi utilizzare un indirizzo IP fittizio, ad esempio8.8.8.8.

  • Verifica della propagazione DNS (facoltativa ma consigliata): per assicurarti che il tuo provider DNS abbia propagato la modifica, puoi eseguire un comando. dig

    • Se si utilizza auth.xyz.yourdomain.com come dominio personalizzato: dig A xyz.yourdomain.com +short

    • Se si utilizza xyz.yourdomain.com come dominio personalizzato: dig A yourdomain.com +short

    • Il comando dovrebbe restituire l'indirizzo IP configurato. In caso contrario, attendi che la modifica sia stata completamente propagata.

  • Rimuovi il record A del dominio principale: dopo aver creato correttamente il dominio personalizzato in Amazon Cognito, puoi rimuovere il record A che hai creato per il dominio principale se si trattava di un record fittizio.

Per ulteriori informazioni, consulta Usare il proprio dominio per l'interfaccia utente ospitata.

Domain already associated with another user pool

I nomi di dominio personalizzati devono essere unici in tutte Account AWS le regioni.

Problema

I nomi di dominio personalizzati devono essere unici in tutte Account AWS le regioni.

Soluzione
  • Per utilizzare il nome di dominio per un nuovo pool di utenti, è necessario eliminare il dominio personalizzato dal pool di utenti a cui è attualmente associato.

  • Attendi dopo l'eliminazione: è necessario del tempo prima che il dominio personalizzato venga eliminato completamente dal primo pool di utenti. La creazione di un nuovo dominio personalizzato con lo stesso nome subito dopo l'eliminazione potrebbe comunque causare questo errore. Attendi qualche minuto prima di riprovare.

One or more of the CNAMEs that you provided are already associated with a different resource

Quando crei un dominio personalizzato, Amazon Cognito crea una distribuzione Amazon AWS CloudFront gestita. Un nome di dominio può essere utilizzato solo con una CloudFront distribuzione Amazon. Questo errore si verifica se il nome di dominio è già in uso come dominio alternativo per un'altra CloudFront distribuzione Amazon.

Problema

Quando crei un dominio personalizzato, Amazon Cognito crea una distribuzione Amazon AWS CloudFront gestita. Un nome di dominio può essere utilizzato solo con una CloudFront distribuzione Amazon. Questo errore si verifica se il nome di dominio è già in uso come dominio alternativo per un'altra CloudFront distribuzione Amazon.

Soluzione
  • Opzione 1: usa un nome di dominio diverso per il tuo dominio personalizzato Amazon Cognito.

  • Opzione 2: se utilizzi il nome di dominio per Amazon Cognito, non utilizzarlo con un'altra distribuzione Amazon CloudFront .

The specified SSL certificate doesn't exist

Amazon Cognito utilizza Amazon CloudFront, che richiede che il certificato AWS Certificate Manager (ACM) si trovi nella us-east-1 (Virginia settentrionale) Regione AWS, indipendentemente dalla regione del pool di utenti.

Problema

Amazon Cognito utilizza Amazon CloudFront, che richiede che il certificato AWS Certificate Manager (ACM) si trovi nella us-east-1 (Virginia settentrionale) Regione AWS, indipendentemente dalla regione del pool di utenti.

Soluzione
  • Verifica la regione del certificato: conferma che il certificato ACM si trova nella regione. us-east-1

  • Verifica la validità del certificato: assicurati che il certificato selezionato non sia scaduto.

  • Certificati importati: se hai importato il certificato in ACM, assicurati che:

    • È stato rilasciato da un'autorità di certificazione pubblica.

    • Include la catena di certificati corretta.

  • AWS KMS Controllo delle politiche: un'denyistruzione esplicita in una policy AWS Key Management Service (AWS KMS) per l'utente o il ruolo IAM che crea il dominio può causare questo errore. In particolare, verifica la presenza di negazioni o azioni esplicite. kms:DescribeKey kms:CreateGrant kms:*

Errore Invalid refresh token

Problema

Ricevi un Invalid refresh token errore quando tenti di utilizzare un token di aggiornamento per ottenere nuovi token di accesso e ID dal tuo pool di utenti Amazon Cognito utilizzando AdminInitiateAuth l'InitiateAuthoperazione o API.

Soluzione

Implementa i seguenti passaggi per la risoluzione dei problemi in base alla configurazione del pool di utenti e all'utilizzo dell'API:

  • Garantisci un ID client dell'app coerente: quando chiami l'InitiateAuthAPI AdminInitiateAuth o l'API per l'aggiornamento del token, devi utilizzare esattamente lo stesso ID client dell'app utilizzato durante l'autenticazione iniziale che ha generato il token di aggiornamento.

  • Conferma il dispositivo: se hai abilitato il tracciamento dei dispositivi nel tuo pool di utenti, ma il dispositivo dell'utente non è stato confermato, devi prima chiamare l'ConfirmDeviceAPI. Dopo che l'utente ha confermato il dispositivo, puoi scambiare il token di aggiornamento.

  • Includi la chiave del dispositivo nella richiesta di aggiornamento: se il tracciamento del dispositivo è abilitato, includi la chiave univoca del dispositivo come elemento AuthParameter durante l'utilizzo del REFRESH_TOKEN_AUTH flusso:

    { "AuthFlow": "REFRESH_TOKEN_AUTH", "AuthParameters": { "REFRESH_TOKEN": "example_refresh_token", "SECRET_HASH": "example_secret_hash", // Required if your app client uses a client secret "DEVICE_KEY": "example_device_key" } }
  • Utilizzo USER_SRP_AUTH per il tracciamento dei dispositivi: se utilizzi il tracciamento dei dispositivi, il flusso di autenticazione iniziale deve essereUSER_SRP_AUTH.

Per ulteriori informazioni, consulta Utilizzo dei dispositivi utente nel pool di utenti.

Errori di risposta SAML non validi nella federazione

Gli utenti ricevono errori diversi Invalid SAML response e simili quando tentano di eseguire la federazione in Amazon Cognito utilizzando SAML 2.0. Questi errori possono verificarsi a causa di problemi di mappatura degli attributi, problemi di certificati o mancate corrispondenze di configurazione.

Invalid user attributes: Required attribute

Problema

A un utente manca un valore per un attributo richiesto nel pool di utenti oppure l'IdP sta tentando di rimuovere o aggiornare un attributo immutabile.

Soluzione
  • Controlla gli attributi obbligatori definiti nella configurazione del tuo pool di utenti.

  • Utilizzando gli strumenti di acquisizione di rete nel browser, recupera la risposta SAML. Potrebbe essere necessario eseguire la decodifica di URL e base64. Verifica che l'attributo sia presente nell'asserzione SAML.

  • Accedi al tuo provider di identità e controlla gli attributi che sta inviando ad Amazon Cognito. Verifica che l'IdP sia configurato per inviare l'attributo richiesto utilizzando il nome corretto.

  • Per gli attributi immutabili, esegui il seguente AWS CLI comando per identificarli:. aws cognito-idp describe-user-pool --user-pool-id USER-POOL-ID --query 'UserPool.SchemaAttributes[?Mutable==`false`].Name'

  • Nelle mappature degli attributi SAML del tuo IdP, elimina qualsiasi mappatura che abbia come target un attributo Amazon Cognito immutabile. In alternativa, aggiorna l'attributo di destinazione con un altro attributo mutabile.

Invalid SAML response received: SAML Response signature is invalid

Problema

Il tuo IdP ha aggiornato il certificato di firma SAML, causando una mancata corrispondenza tra il certificato nella risposta SAML e il file di metadati archiviato in Amazon Cognito.

Soluzione
  1. Scarica il file di metadati più recente dal tuo IdP.

  2. Nella console Amazon Cognito, accedi ai provider social ed esterni per il tuo pool di utenti, modifica il tuo provider SAML e sostituisci il file di metadati esistente con il file appena scaricato.

Audience restriction o Application with identifier not found

Problema

Nel tuo IdP è configurato un Entity ID errato oppure l'asserzione utilizza l'Uniform Resource Name (URN) di un altro pool di utenti.

Soluzione
  1. Ottieni l'ID del tuo pool di utenti Amazon Cognito dalla sezione Panoramica della console.

  2. Nella console di gestione del tuo IdP, aggiorna l'ID dell'entità nell'applicazione SAML per il tuo pool di utenti. Configura l'ID dell'entità in modo che corrisponda al formato. urn:amazon:cognito:sp:USER_POOL_ID Sostituisci USER_POOL_ID con l'ID del pool di utenti del passaggio precedente.

An error was encountered with the requested page

Problema

L'URL di Assertion Consumer Service (ACS) registrato con il tuo IdP non è configurato correttamente oppure l'IdP non invia la risposta SAML utilizzando l'associazione POST richiesta.

Soluzione
  • Nella console di gestione del tuo IdP, aggiorna l'applicazione con il formato URL ACS corretto, assicurandoti che utilizzi l'associazione. HTTP POST

  • Formato di dominio predefinito: https://cognito-idp.Region.amazonaws.com/your user pool ID/saml2/idpresponse

  • Formato di dominio personalizzato: https://auth.example.com/saml2/idpresponse

Invalid relayState from identity provider

Problema

Il RelayState parametro è mancante o non valido oppure l'URL non corrisponde tra l'IdP e Amazon Cognito.

Soluzione

Per ulteriori informazioni, consulta Utilizzo di provider di identità SAML con un pool di utenti.

Gli utenti con accesso gestito non possono selezionare un fattore MFA

Problema

Gli utenti non possono scegliere il metodo MFA preferito quando accedono tramite accesso gestito, oppure non viene loro richiesto il metodo MFA previsto.

Soluzione

Amazon Cognito segue una logica specifica per determinare quali fattori MFA sono disponibili per gli utenti in base alle impostazioni del pool di utenti, agli attributi utente e alla configurazione di ripristino dell'account. Ad esempio, gli utenti non possono utilizzare l'MFA della posta elettronica se l'e-mail è configurata come metodo di ripristino dell'account principale.

Per ignorare la selezione del fattore MFA predefinita, puoi implementare uno di questi approcci:

  • Per le applicazioni pubbliche: utilizzare SetUserMFAPreferencecon un token di accesso valido per consentire agli utenti di impostare le proprie preferenze MFA

  • Per le applicazioni gestite dall'amministratore: utilizzare AdminSetUserMFAPreferencecon le AWS credenziali per configurare le preferenze MFA dell'utente

Entrambe le operazioni consentono di abilitare o disabilitare i metodi MFA di SMS, e-mail e TOTP per i singoli utenti e di impostare un metodo come preferito.

Per ulteriori informazioni, consulta Aggiunta dell'autenticazione MFA a un bacino d'utenza.

Gli utenti che non utilizzano password e password non possono utilizzare l'MFA

Problema

Gli utenti che accedono con metodi di autenticazione o passkey senza password non possono aggiungere o utilizzare l'autenticazione a più fattori.

Soluzione

Si tratta di una limitazione voluta. Puoi configurare il tuo pool di utenti in modo che gli utenti dispongano di MFA o accedano con fattori privi di password, ma non entrambi. L'MFA è disponibile solo per i flussi di autenticazione basati su password.

Per ulteriori informazioni, consulta Autenticazione con pool di utenti.

Non è possibile ricevere il codice di reimpostazione della password tramite e-mail/SMS

Problema

Gli utenti non possono ricevere i codici di verifica durante il flusso di lavoro relativo alla password dimenticata tramite e-mail o SMS.

Soluzione

Esistono vari motivi per cui i codici di verifica potrebbero non essere ricevuti. Segui questa lista di controllo per risolvere il problema:

  • Controlla le cartelle di posta indesiderata e posta indesiderata dell'utente.

  • Verifica che l'utente esista nel pool di utenti.

  • Verifica che lo stato dell'utente non lo siaFORCE_CHANGE_PASSWORD. In tal caso, l'utente è stato creato da un amministratore e Amazon Cognito gli chiederà di impostare una password quando accede con la password temporanea.

  • Verifica che l'utente disponga di un attributo e-mail o numero di telefono verificato.

  • Verifica il limite di spesa del tuo account per gli SMS

  • Controlla la quota di invio di messaggi di Amazon Simple Email Service (Amazon SES).

  • Verifica se sia SMS che Amazon SES (se il tuo pool di utenti è configurato per Inviare e-mail con Amazon SES) sono stati spostati fuori dalla sandbox. Se non sono stati rimossi dalla sandbox, indirizzi e-mail o numeri di telefono che non sono stati verificati da Amazon SES o che non AWS End User Messaging SMS saranno in grado di ricevere codici di reimpostazione della password.

  • Se l'utente ha un fattore MFA attivo, verifica che non stia cercando di generare un messaggio sullo stesso fattore. Ad esempio, gli utenti con MFA e-mail attivo non possono inviare codici di reimpostazione della password tramite e-mail.

Per ulteriori informazioni, consultare Impostazioni e-mail per i bacini d'utenza di Amazon Cognito e Impostazioni dei messaggi SMS per i bacini d'utenza di Amazon Cognito.

La reimpostazione della password non riesce con attributi di ripristino non verificati: Could not reset password for the account, please contact support or try again

Problema

Gli utenti ricevono questo errore quando tentano di reimpostare la password a causa di metodi di ripristino non verificati o conflitti di configurazione MFA. L'errore si verifica quando l'attributo e-mail o numero di telefono dell'utente non è verificato o quando le impostazioni MFA impediscono l'utilizzo del metodo di ripristino configurato.

Soluzione

Controlla la configurazione di ripristino dell'account del tuo pool di utenti e lo stato di verifica dell'utente interessato:

  • Verifica le impostazioni di ripristino: nel tuo pool di utenti, vai su Accedi > Ripristino dell'account utente. Assicurati che il ripristino dell'account self-service sia abilitato e controlla l'impostazione del metodo di recapito dei messaggi di ripristino.

  • Verifica la verifica degli attributi utente: verifica che l'utente abbia un indirizzo email o un numero di telefono verificato che corrisponda alla configurazione del metodo di ripristino. Nella console, vai al profilo dell'utente, seleziona Attributi utente > Modifica e contrassegna l'attributo appropriato come verificato.

  • Risolvi i conflitti MFA: gli utenti il cui metodo MFA preferito è l'e-mail non possono ricevere codici di reimpostazione della password tramite e-mail e gli utenti con MFA SMS non possono ricevere codici tramite SMS. Aggiorna il metodo di recapito dei messaggi di ripristino per fornire opzioni alternative come SMS se disponibili, altrimenti e-mail o e-mail se disponibile, altrimenti SMS.

  • Verifica amministrativa: utilizza l'operazione API per verificare AdminUpdateUserAttributesa livello di codice gli attributi utente quando l'accesso alla console non è disponibile.

Per ulteriori informazioni, consulta Password, ripristino dell'account e politiche relative alle password.

Errori SECRET_HASH

Problema

Le richieste API di autenticazione ai client di app con segreti client restituiscono errori come An error occurred (NotAuthorizedException) when calling the ForgotPassword operation: Client 1example23456789 is configured with secret but SECRET_HASH was not received.

Soluzione

L'applicazione deve calcolare SECRET_HASH il segreto dell'utente corrente, del client dell'app e del client. Il metodo di calcolo è:

Base64 ( HMAC_SHA256 ( "client secret", "Username" + "Client Id" ) )

Per ottenere il segreto del cliente, puoi:

  1. Apri la console Amazon Cognito e accedi al client dell'app dal menu App client. Nella sezione Informazioni sul client dell'app, individua Client secret. Seleziona Mostra il segreto del client per visualizzare il segreto del client dell'app.

  2. Genera una DescribeUserPoolClientrichiesta. Il segreto del client è incluso nella risposta.

Per ulteriori informazioni, consulta Calcolo dei valori SecretHash.

La console Amazon Cognito sceglie una configurazione predefinita per un nuovo pool di utenti

Problema

Quando configuri un nuovo pool di utenti nella console, Amazon Cognito sceglie diverse impostazioni predefinite per te. Alcune impostazioni non possono essere modificate dopo la creazione del pool di utenti. Come puoi fare scelte informate e capire cosa Amazon Cognito ha selezionato automaticamente?

Soluzione

La nuova configurazione del pool di utenti nella console Amazon Cognito è progettata per test e prototipazione rapidi. La console offre solo le scelte di configurazione più importanti, quelle che non possono essere modificate dopo la creazione del pool di utenti. Tutte le altre impostazioni che Amazon Cognito configura automaticamente possono essere modificate in un secondo momento.

Consigliamo quanto segue:

  1. Usa la console per creare pool di utenti di prova mentre perfezioni l'implementazione.

  2. Dopo aver determinato la configurazione di produzione, applica tali impostazioni ai pool di utenti di test.

  3. Utilizza DescribeUserPoolle operazioni DescribeUserPoolClientAPI per generare modelli JSON della configurazione testata.

  4. Usa questi modelli con strumenti di distribuzione come CDK AWS SDKs, REST API o CloudFormation per creare risorse di produzione.

Per ulteriori informazioni, consulta Nozioni di base sui bacini d'utenza.

Altre risorse per la risoluzione dei problemi

Per ulteriori indicazioni sulla risoluzione dei problemi e soluzioni fornite dalla community, puoi anche esplorare le seguenti risorse esterne: