Come posso risolvere un errore "risposta SAML non valida" per la federazione AWS IAM e Okta?

Ultimo aggiornamento: 23/05/2022

Quando accedo ad AWS con Okta, ricevo un errore di riposta SAML non valida simile a:

"La richiesta includeva una risposta SAML non valida. Per disconnetterti, fai clic qui».

Come posso risolvere questo errore?

Breve descrizione

Quando utilizzi la federazione AWS Account in Okta, potresti ricevere un errore di riposta SAML durante l'accesso ad AWS. Questo può accadere se fornisci informazioni mancanti o errate per l'attributo del ruolo in una risposta SAML. Il valore previsto di questo attributo è una o più coppie separate da virgole di un ruolo AWS Identity and Access Management (IAM) e del provider SAML, come illustrato qui:

<Attribute Name="https://aws.amazon.com/SAML/Attributes/Role">
  <AttributeValue>arn:aws:iam::ACCOUNT_NUMBER:role/ROLE_NAME_1,arn:aws:iam::ACCOUNT_NUMBER:saml-provider/PROVIDER_NAME/AttributeValue>
  <AttributeValue>arn:aws:iam::ACCOUNT_NUMBER:role/ROLE_NAME_2,arn:aws:iam::ACCOUNT_NUMBER:saml-provider/PROVIDER_NAME</AttributeValue>
  <AttributeValue>arn:aws:iam::ACCOUNT_NUMBER:role/ROLE_NAME_3,arn:aws:iam::ACCOUNT_NUMBER:saml-provider/PROVIDER_NAME</AttributeValue>
</Attribute>

Per verificare la risposta SAML dal browser, segui i passaggi in Come visualizzare una risposta SAML nel browser per la risoluzione dei problemi.

Risoluzione

Se utilizzi l'impostazione Use Group Mapping (Utilizza la mappatura di gruppo) in Okta, segui i passaggi indicati in Connettiti a Okta con più account AWS. In caso contrario, vai su Connettiti a Okta con un unico account AWS. 

Connettiti a Okta con più account AWS

Se ti connetti a Okta con più account AWS, Okta utilizza la mappatura dei ruoli basata sul gruppo. Ciò significa che Okta utilizza il nome del gruppo per identificare l'ID account AWS e il nome del ruolo IAM per l'SSO.

Nota: assicurati di inserire correttamente il filtro di gruppo e il modello di valore del ruolo in Okta per acquisire accuratamente le informazioni:

1.    Accedi alla console di amministrazione di Okta.

2.    Scegli Applications (Applicazioni), quindi scegli di nuovo Applications (Applicazioni).

3.    Scegli Sign On (Accedi), quindi scegli Edit (Modifica).

4.    Il filtro di gruppo è un'espressione Regex personalizzata che acquisisce informazioni come l'ID account AWS e il nome del ruolo IAM per il nome del gruppo Okta. Per ulteriori informazioni, consultare il documento di installazione di Okta.

La guida all'installazione fornisce questo esempio:

Group name: "aws#[account alias]#[role name]#[account #]" 
Group Filter: "^aws\#\S+\#(?{{role}}[\w\-]+)\#(?{{accountid}}\d+)$"

è possibile estendere questo esempio se si desidera personalizzare il nome del gruppo. Guarda questi esempi di nomi di gruppi e filtri di gruppo:

Group Name: [account alias]|[role name]|[account #] 
Group Filter: ^\S+\|(?{{role}}[a-zA-Z0-9+=.@\-_]+)\|(?{{accountid}}\d+)$
Group Name: aws_[account #]_[role name] 
Group Filter: ^aws\_(?{{accountid}}\d+)\_(?{{role}}[a-zA-Z0-9+=.@\-_]+)$

Nota:

  • il nome del ruolo IAM consente caratteri alfanumerici e i caratteri "+=,.@-_". Se ricevi un errore causato dal filtro di gruppo, prendi in considerazione l'utilizzo di delimitatori che non fanno parte del nome del tuo ruolo (ad esempio "#" o "|").
  • Se desideri accedere utilizzando la federazione IAM , il nome del ruolo IAM non deve contenere ",". Questo è dovuto al fatto che il modello di valore del ruolo mostrato qui sotto utilizza una virgola per separare il provider SAML e il nome del ruolo. Crea un nuovo ruolo IAM senza una virgola nel nome da utilizzare con la federazione IAM.

5.    Il modello del valore di ruolo deve contenere l'ARN del ruolo IAM e del provider SAML, separati da una virgola. Sostituisci il nome del provider SAML in questo esempio con il nome del provider dell'istanza Okta. Puoi trovare queste informazioni nella console AWS IAM, sotto Provider di identità.

arn:aws:iam::${accountid}:saml-provider/[SAML Provider Name],arn:aws:iam::${accountid}:role/${role}

Nota: il nome del provider SAML deve essere identico per tutti gli account AWS.

6.    Scegli Save (Salva).

7.    Verifica l'accesso utente da Okta ad AWS per confermare se l'errore è stato risolto.

Connettiti a Okta con un unico account AWS

Per la configurazione di un singolo account, Okta imposta automaticamente il modello di valore del ruolo. Se visualizzi il messaggio di errore "La richiesta includeva una risposta SAML non valida. Per disconnetterti, fare clic qui" per l'integrazione di un singolo account, solleva un caso di supporto con Okta per indagare sul problema.