Risoluzione errori SAML con Amazon Connect - Amazon Connect

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 errori SAML con Amazon Connect

Questo articolo illustra come risolvere alcuni dei problemi più comuni riscontrati dai clienti durante l'utilizzo di SAML con Amazon Connect.

Se stai risolvendo i problemi di integrazione con altri provider di identità come Okta, Azure AD e altri PingIdentify, consulta Amazon Connect SSO Setup Workshop.

Messaggio di errore: accesso negato. L'account è stato autenticato, ma non è stato applicato a questa applicazione.

Messaggio di errore: accesso negato

Che cosa significa?

Questo errore indica che l'utente ha effettuato correttamente l'autenticazione tramite SAML nell'endpoint di accesso SAML AWS . Tuttavia, l'utente non poteva essere matched/found all'interno di Amazon Connect. Il messaggio generalmente indica di procedere in uno dei seguenti modi:

  • Il nome utente in Amazon Connect non corrisponde all'attributo SAML RoleSessionName specificato nella risposta SAML restituita dal provider di identità.

  • L'utente non esiste in Amazon Connect.

  • All'utente vengono assegnati due profili separati tramite SSO.

Risoluzione

Utilizza i seguenti passaggi per verificare l'attributo RoleSessionName SAML specificato nella risposta SAML restituita dal provider di identità, quindi recuperalo e confrontalo con il nome di accesso in Amazon Connect.

  1. Esegui un'acquisizione HAR (H TTP AR chive) per il processo di accesso. end-to-end Questo cattura le richieste di rete dal lato browser. Salva il file HAR con il nome file preferito, ad esempio saml.har.

    Per istruzioni, vedi Come posso creare un file HAR dal mio browser per un caso di AWS Support?

  2. Usa un editor di testo per trovarlo SAMLResponse nel file HAR. Oppure, esegui questi comandi:

    $ grep -o "SAMLResponse=.*&" azuresaml.har | sed -E 's/SAMLResponse=(.*)&/\1/' > samlresponse.txt

    • Questo cerca il file SAMLresponse nel file HAR e lo salva in un file samlresponse.txt.

    • La risposta è codificata URL e il contenuto è codificato Base64.

  3. Decodifica la risposta URL e quindi decodifica il contenuto Base64 utilizzando uno strumento di terze parti o uno script semplice. Per esempio:

    $ cat samlresponse.txt | python3 -c "import sys; from urllib.parse import unquote; print(unquote(sys.stdin.read()));" | base64 --decode > samlresponsedecoded.txt

    Questo script utilizza un semplice comando python per decodificarlo SAMLResponse dal formato originale con codifica URL. Quindi decodifica la risposta da Base64 ed emette la risposta SAML in formato testo normale.

  4. Controlla la risposta decodificata per l'attributo necessario. Ad esempio, l'immagine seguente mostra come controllare RoleSessionName:

    Il comando grep per controllare rolesessionname.
  5. Verifica se il nome utente restituito dal passaggio precedente esiste come utente nell'istanza di Amazon Connect:

    $ aws connect list-users --instance-id [INSTANCE_ID] | grep $username

    • Se il grep finale non restituisce un risultato, ciò significa che l'utente non esiste nell'istanza di Amazon Connect o è stato creato con un uso di maiuscole/minuscole diverso.

    • Se la tua istanza Amazon Connect ha molti utenti, la risposta della chiamata ListUsers API potrebbe essere suddivisa in pagine. Utilizza il NextToken restituito dall'API per recuperare il resto degli utenti. Per ulteriori informazioni, consulta ListUsers.

Esempio di risposta SAML

Di seguito è riportata un'immagine da un esempio di risposta SAML. In questo caso, il gestore dell'identità digitale (IdP) è Azure Active Directory (Azure AD).

un esempio di risposta SAML

Messaggio di errore: Accesso negato. Contatta l'amministratore del tuo AWS account per ricevere assistenza.

Messaggio di errore: accesso negato.

Che cosa significa?

Il ruolo assunto dall'utente è stato autenticato con successo tramite SAML. Tuttavia, il ruolo non è autorizzato a chiamare l' GetFederationToken API per Amazon Connect. Questa chiamata è necessaria in modo che l'utente possa accedere all'istanza di Amazon Connect utilizzando SAML.

Risoluzione

  1. Allega una policy che dispone delle autorizzazioni connect:GetFederationToken per il ruolo trovato nel messaggio di errore. Di seguito è riportata una policy di esempio:

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": "connect:GetFederationToken", "Resource": [ "arn:aws:connect:ap-southeast-2:111122223333:instance/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/user/${aws:userid}" ] } ] }
  2. Utilizza la console IAM per allegare la policy. Oppure, usa l' attach-role-policyAPI, ad esempio:

    $ aws iam attach-role-policy —role-name [ASSUMED_ROLE] —policy_arn [POLICY_WITH_GETFEDERATIONTOKEN]

Messaggio di errore: sessione scaduta

Se durante l'accesso viene visualizzato il messaggio Sessione scaduta, probabilmente è sufficiente aggiornare il token di sessione. Vai al provider di identità ed esegui l'accesso. Aggiorna la pagina Amazon Connect. Se il messaggio persiste, contatta il team IT.