Come posso risolvere gli errori di risposta SAML non validi che gli utenti potrebbero ricevere durante la federazione in Amazon Cognito?

10 minuti di lettura
0

Ho bisogno di risolvere gli errori che gli utenti potrebbero riscontrare durante la federazione in Amazon Cognito con il Security Assertion Markup Language 2.0 (SAML 2.0).

Soluzione

Amazon Cognito supporta l'autenticazione con gestori dell'identità (IdP) digitale e SAML 2.0. Esistono errori comuni che gli utenti possono riscontrare durante la federazione in Amazon Cognito utilizzando SAML.

Nota: Sostituisci <attribute_name> completamente con l'attributo utente del tuo scenario di errore.

Visualizza le risposte SAML

Per risolvere gli errori di federazione SAML più comuni, esamina la risposta SAML inviata dall'IdP al pool di utenti di Amazon Cognito. Per istruzioni su come acquisire e decodificare la risposta SAML, consulta Visualizzazione di una risposta SAML nel tuo browser.

Nota: L’elemento SAMLResponse contiene la richiesta con codifica base64. Un payload con % caratteri indica che il payload è codificato in URL oltre a base64. Esegui la decodifica dell'URL sul valore SAMLResponse prima di inviarlo per la decodifica in base64.

Risolvi errori di risposta SAML non validi

"Risposta SAML non valida ricevuta: Attributi utente non validi: <attribute_name>: L'attributo è obbligatorio."

Questo errore si verifica quando un pool di utenti è configurato con gli attributi obbligatori ma l'IdP non trasmette le richieste per gli attributi obbligatori. Questo errore si verifica anche quando la mappatura degli attributi non è disponibile per gli attributi obbligatori.

Segui questi passaggi per risolvere l'errore:

1.    Apri la console Amazon Cognito.

2.    Seleziona il tuo pool di utenti.

3.    Esamina le informazioni sul pool di utenti. Annota gli attributi richiesti configurati in Esperienza di registrazione.

4.    Recupera e rivedi la risposta SAML nel tuo browser.

5.    Verifica se l'IdP sta superando tutte le richieste relative agli attributi nel campo AttributeStatement della risposta. Se l'IdP non invia tutti gli attributi richiesti nella risposta SAML, controlla la configurazione della mappatura degli attributi del tuo IdP. Assicurati che il tuo IdP sia configurato per inviare le mappature corrette per gli attributi richiesti.

Nota: Il tuo IdP potrebbe offrire esempi di asserzioni SAML come riferimento. Puoi controllare le asserzioni per ottenere maggiori dettagli sugli attributi mappati dell'IdP. Alcuni IdP utilizzano nomi semplici per la mappatura degli attributi, come un indirizzo e-mail, mentre altri utilizzano nomi di attributi in formato URL simili a questo esempio:

http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress

6.    Se la risposta SAML include gli attributi obbligatori ma continui a ricevere lo stesso errore, controlla le mappature degli attributi di Amazon Cognito. Quando manca una mappatura per un attributo obbligatorio, aggiungi una mappatura alla dichiarazione dell'attributo. Per istruzioni su come aggiungere le mappature degli attributi, consulta Specificare le mappature degli attributi del gestore dell'identità per il pool di utenti.

"Risposta SAML non valida ricevuta: Attributi utente non validi: <attribute_name>: L'attributo richiesto non può essere eliminato."

Questo errore si verifica quando un attributo richiesto viene modificato nell'IdP in modo che risulti nullo o eliminato. Questo errore si verifica anche quando una mappatura viene rimossa dopo la creazione di un utente.

Segui questi passaggi per risolvere l'errore:

1.    Apri la console Amazon Cognito.

2.    Seleziona il tuo pool di utenti di Amazon Cognito.

3.    Esamina le informazioni sul pool di utenti. Annota gli attributi obbligatori configurati.

4.    Recupera e rivedi la risposta SAML nel tuo browser.

5.    Verifica se l'IdP sta superando tutte le richieste relative agli attributi nel campo AttributeStatement della risposta. Se l’IdP non invia tutti gli attributi richiesti nella risposta SAML, controlla la configurazione della mappatura degli attributi dell’IdP. Assicurati che il tuo IdP sia impostato per inviare gli attributi richiesti con le mappature corrette.

6.    Se tutti gli attributi richiesti vengono passati con valori validi nella risposta SAML, controlla le mappature degli attributi IdP. Assicurati che ci siano mappature per tutti gli attributi richiesti.

Nota: Potresti riscontrare il seguente errore durante le richieste di federazione dopo l'eliminazione o la modifica in null dell'attributo richiesto di un IdP: "Risposta SAML non valida ricevuta: Attributi utente non validi: <attribute_name>: L'attributo richiesto non può essere eliminato." Questo errore si verifica anche quando la mappatura viene rimossa dopo la creazione di un utente. Per risolverlo, segui i passaggi precedenti per assicurarti che esista la mappatura per gli attributi richiesti. Verrà quindi passato un valore corretto per gli attributi richiesti dal tuo IdP.

"Risposta SAML non valida ricevuta: Attributi utente non validi: <attribute_name>: L'attributo non può essere aggiornato."

Questo errore si verifica quando un attributo viene passato dall'IdP ma l'attributo Amazon Cognito mappato è impostato come immutabile ("mutable" : "false"). Non è possibile modificare le impostazioni di mutabilità di un attributo dopo la creazione di un pool di utenti. Per risolvere questo errore, è necessario rimuovere la regola di mappatura degli attributi che associa l'attributo SAML a un attributo immutabile.

Segui questi passaggi per risolvere l'errore:

1.    Esegui il seguente comando dall'Interfaccia della linea di comando AWS (AWS CLI) e annota gli attributi restituiti nell'output. Tutti gli attributi restituiti nell'output sono immutabili.

Nota: Sostituisci <userpool_id> con l'ID del tuo pool di utenti.

aws cognito-idp describe-user-pool --user-pool-id <userpool_id> --query 'UserPool.SchemaAttributes[?Mutable==`false`].Name'

Nota: se ricevi errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS, assicurati di utilizzare la versione più recente di AWS CLI.

2.    Apri la console Amazon Cognito.

3.    Controlla le mappature degli attributi SAML per il tuo gestore.

4.    Verifica se alcuni degli attributi SAML sono mappati agli attributi Amazon Cognito restituiti nell'output del comando. Se esiste una mappatura a un attributo immutabile, elimina quella mappatura. Se hai bisogno di mappare quell'attributo SAML, mappalo a qualsiasi attributo mutabile esistente. Puoi anche creare un attributo mutabile personalizzato e mappare l'attributo SAML all'attributo mutabile personalizzato.

Non è possibile eseguire alcuna soluzione alternativa su un pool di utenti esistente per eliminare una mappatura perché è richiesto un attributo mappato. È necessario creare un nuovo pool di utenti con le impostazioni di mutabilità richieste e migrare gli utenti al nuovo pool di utenti.

"Risposta SAML non valida ricevuta: La firma della risposta SAML non è valida."

Questo errore si verifica quando l'IdP modifica il certificato di firma SAML. Per risolvere questo problema, consulta la risposta SAML che ricevi durante la federazione in Amazon Cognito. Annota il valore fornito nel campo X509Certificate. Confronta questo valore X509Certificate nella risposta SAML con il valore X509Certificate nel file XML di metadati caricato su Amazon Cognito per la configurazione IdP. Se i valori sono diversi, significa che il certificato di firma SAML utilizzato dall'IdP è stato aggiornato.

Segui questi passaggi per risolvere l'errore:

1.    Vai alla pagina di configurazione dell'applicazione del tuo IdP, quindi recupera il file di metadati aggiornato.

2.    Apri la console Amazon Cognito.

3.    Passa alla configurazione del tuo IdP SAML.

4.    Sostituisci il file di metadati esistente con il file di metadati aggiornato.
-oppure-
Se il tuo IdP offre metadati SAML tramite un URL pubblico, copia l'URL del documento con i metadati. Incolla quell'URL pubblico invece di caricare un file di metadati.

"Risposta SAML non valida ricevuta: La restrizione del pubblico in SAML Assertion non consente questa azione per urn:amazon:cognito:sp:xxxxxxxx."
-oppure-
"Risposta SAML non valida ricevuta: L'applicazione con l'identificatore 'urn:amazon:cognito:sp:xxxxxxxx' non è stata trovata."

Nota: Il messaggio di errore varia in base all'IdP.

Questo errore si verifica quando configuri erroneamente il tuo ID di entità sul tuo IdP. Questo errore si verifica anche quando utilizzi l'URN di un altro pool di utenti come ID di entità.

Segui questi passaggi per risolvere l'errore:

1.    Apri la console Amazon Cognito.

2.    Scegli Pool di utenti, quindi annota l'ID del tuo pool di utenti.

3.    Vai alle impostazioni dell'applicazione SAML dell'IdP, quindi configura l’ID dell'entità nel seguente formato:

Nota: Sostituisci <user_pool_id> con l'ID del tuo pool di utenti Amazon Cognito.

urn:amazon:cognito:sp:<user_pool_id>

"È stato riscontrato un errore nella pagina richiesta."

Questo errore si verifica nella pagina dell'interfaccia utente ospitata di Amazon Cognito. Quando questo messaggio di errore non è accompagnato da altre dichiarazioni di errore, indica che l’URL Assertion Consumer Service (ACS) dell'applicazione è configurato in modo errato. Il tuo IdP utilizza l'URL ACS per inviare una risposta SAML ad Amazon Cognito. L'URL ACS segue questo formato:

Nota: Sostituisci <your_user_pool_domain> con il dominio del tuo pool di utenti.

https://<your_user_pool_domain>/saml2/idpresponse

Amazon Cognito supporta solo l'associazione POST per l'endpoint. Il tuo IdP deve inviare le risposte SAML nella richiesta POST all’endpoint. Se configuri erroneamente questo URL nell'applicazione del tuo IdP, il tuo IdP invierà la risposta SAML a un endpoint errato. Ciò comporta un errore 400 e un errore di federazione.

Segui questi passaggi per risolvere l'errore:

1.    Vai alla configurazione dell'applicazione del tuo IdP e imposta l'URL ACS utilizzando uno dei seguenti formati:

Dominio Cognito:

https://<your_user_pool_domain>.auth.<region>.amazoncognito.com/saml2/idpresponse

Dominio personalizzato:

https://<your_user_pool_domain>/saml2/idpresponse

"È stato riscontrato un errore nella pagina richiesta: relayState del gestore dell'identità digitale non valido."
-oppure-
"È stato riscontrato un errore nella pagina richiesta: samlResponse o relayState del gestore dell'identità digitale non validi."

Questo errore si verifica per i seguenti motivi:

  • Il parametro RelayState viene impostato su null dall'IdP quando una risposta SAML viene inviata ad Amazon Cognito.
  • L’URL ACS nella richiesta SAML non corrisponde a quello dell’URL ACS configurato nell’applicazione del tuo IdP.

Amazon Cognito genera un parametro RelayState quando inoltra una richiesta di autenticazione al tuo IdP. Questo parametro RelayState deve essere restituito dall'IdP ad Amazon Cognito dopo che è l'autenticazione è stata eseguita correttamente.

Durante la federazione SAML, un pool di utenti funge da provider di servizi per conto dell'applicazione. In qualità di provider di servizi, Amazon Cognito supporta solo flussi Single Sign-On (SSO) avviati dal provider di servizi. I flussi avviati da IdP non sono supportati. Quando viene avviata una richiesta di federazione dal tuo IdP, l’attributo richiesto dell'IdP viene eliminato o modificato in null. Un errore di federazione è il risultato che include il messaggio di errore menzionato in precedenza.

Per risolvere questo errore, avvia la richiesta di federazione da Amazon Cognito anziché dall'IdP. Per avviare la federazione da Amazon Cognito, segui uno di questi passaggi per avviare il flusso di autenticazione:

  • Reindirizza gli utenti all'endpoint](https://docs.aws.amazon.com/cognito/latest/developerguide/login-endpoint.html)/login[ per l'accesso. L'endpoint /login carica la pagina di accesso e presenta le opzioni di autenticazione del client agli utenti. Connettiti all'endpoint /login quando gli utenti devono selezionare diverse opzioni per accedere alle tue applicazioni ed essere reindirizzati all'IdP.
  • Invia richieste all'endpoint /oauth2/authorize per Amazon Cognito. L'endpoint /oauth2/authorize è un endpoint di reindirizzamento che supporta due destinazioni di reindirizzamento. Quando includi un parametro identity_provider o idp_identifier nell'URL, l'utente viene reindirizzato senza problemi alla pagina di accesso dell'IdP. Puoi utilizzare questa opzione per saltare il layout predefinito dell’interfaccia utente ospitata e per essere reindirizzato direttamente alla pagina IdP.

L’errore si verifica anche quando l'URL ACS è diverso quando una richiesta di federazione per la stessa applicazione IdP proviene da un pool di utenti diverso. Segui questi passaggi per esaminare e risolvere l'errore:

1.    Durante la federazione in Amazon Cognito, acquisisci il file HTTP Archive (HAR).

2.    Nel tuo browser, nella scheda Rete, cerca la richiesta con la voce saml?SamlRequest, quindi aprila.

3.    Copia la SAMLRequest fornita nei parametri della richiesta.

4.    Usa il tuo strumento di decodifica SAML preferito per decodificare la SAMLRequest. Quindi, controlla se l'URL ACS inviato in SAMLRequest è lo stesso impostato nell'applicazione del tuo IdP.

L'errore viene confermato quando i valori SAMLRequest sono diversi.

5.    Per risolvere l'errore, controlla la configurazione del tuo IdP. Assicurati che l'URL ACS impostato sulla tua applicazione sia lo stesso dell'URL ACS inviato nella SAMLRequest.

L'URL ACS è diverso quando viene generata una richiesta di federazione per la stessa applicazione IdP da un pool di utenti diverso. Assicurati di avviare la richiesta di federazione dal pool di utenti appropriato.

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa