Risolvere i problemi relativi al Single Sign-On (SSO)

Questo documento illustra come risolvere i messaggi di errore più comunemente riscontrati durante l'integrazione o l'utilizzo del servizio Single Sing-On (SSO) basato su SAML in G Suite, quando Google è il fornitore di servizi (SP, Service Provider).

Configurazione e attivazione

"Il dominio non è configurato per l'utilizzo della funzionalità Single Sign-On".

Questo messaggio di errore indica in genere che stai tentando di utilizzare il servizio Single Sign-On con una versione standard (gratuita) di G Suite, attualmente non supportata. Se sei certo che la versione che stai utilizzando è G Suite, Education o ISP, verifica la configurazione nel tuo provider di identità per accertarti di aver inserito il nome del dominio delle app corretto.

"Impossibile accedere all'account poiché il dominio non è correttamente configurato. Riprova più tardi".

Questo errore indica che il Single Sign-On non è stato configurato correttamente nel pannello di controllo di G Suite. Esegui nuovamente i seguenti passaggi per risolvere il problema:

  1. Nella Console di amministrazione Google, vai a Sicurezza > Configura Single Sign-On (SSO) e seleziona la casella Configura SSO con provider di identità di terze parti.
  2. Inserisci gli URL per le pagine di accesso, uscita e modifica della password della tua organizzazione nei campi corrispondenti.
  3. Nel campo Certificato di verifica, scegli e carica un file di certificato di verifica valido.
  4. Fai clic su Salva modifiche e attendi per alcuni minuti che le modifiche abbiano effetto, quindi verifica di nuovo l'integrazione.

Parsing della risposta SAML

"Parametro di risposta richiesto SAMLResponse mancante"

Questo messaggio di errore indica che il provider di identità non fornisce a Google alcuna risposta SAML valida. Ciò è quasi certamente dovuto a un problema di configurazione del provider di identità.

  • Esamina i log del provider di identità e assicurati che non vi siano problemi che impediscono la corretta restituzione della risposta SAML.
  • Accertati che il tuo provider di identità non stia inviando a G Suite una risposta SAML criptata. G Suite accetta soltanto risposte SAML non criptate. In particolare, tieni presente che il server Active Directory Federation Services 2.0 di Microsoft, quando viene utilizzato in configurazioni predefinite, spesso invia risposte SAML criptate.
"Il parametro di risposta richiesto RelayState era mancante"

La specifica SAML 2.0 richiede che i provider di identità recuperino e restituiscano un parametro URL RelayState dai provider di risorse quali, ad esempio, G Suite. G Suite fornisce questo valore al provider di identità all'interno della richiesta SAML e l'esatto contenuto può essere diverso a ogni accesso. Per il corretto completamento dell'autenticazione, nella risposta SAML deve essere restituito il contenuto esatto del parametro RelayState. In base alla specifica standard SAML, il tuo provider di identità non dovrebbe modificare il parametro RelayState durante il flusso di accesso.

  • Per diagnosticare ulteriormente questo problema, è necessario acquisire le intestazioni HTTP durante un tentativo di accesso. Estrai il parametro RelayState dalle intestazioni HTTP sia con la richiesta sia con la risposta SAML e assicurati che i valori di RelayState nella richiesta e nella risposta corrispondano.
  • Per impostazione predefinita, la maggior parte dei provider di identità SSO disponibili sul mercato oppure open-source trasmette senza problemi il parametro RelayState. Per una sicurezza e un'affidabilità ottimali, consigliamo di utilizzare una delle soluzioni esistenti; non siamo in grado di offrire assistenza per il tuo software SSO personale.

Contenuto della risposta SAML

"Non è stato possibile accedere a questo servizio perché la richiesta di accesso contiene informazioni [destination|audience|recipient] non valide. Accedi e riprova".

Questo errore indica che gli elementi destination, audience o recipient dell'asserzione SAML contenevano dati non validi. Tutti gli elementi devono essere inclusi nell'asserzione SAML. Controlla nella tabella seguente le descrizioni e gli esempi relativi a ciascun elemento.

Elemento <Audience>
Descrizione URI che identifica il pubblico di destinazione e richiede il valore dell'URI dell'ACS. Nota. Il valore dell'elemento non può essere vuoto.
Valore richiesto https://www.google.com/a/<tuodominio.com>/acs
Esempio

<saml:Conditions
NotBefore="2014-11-05T17:31:37Z"

NotOnOrAfter="2014-11-05T17:37:07Z"
<saml:AudienceRestriction>
<saml:Audience>https://wwww.google.com/a/yourdomain.com/acs<saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>

 

Elemento Attributo Destination del tipo <StatusResponseType>
Descrizione URI della destinazione a cui viene inviata l'asserzione SAML. È un attributo opzionale, me se viene dichiarato, è necessario specificare un valore dell'URI dell'ACS.
Valore richiesto https://www.google.com/a/<tuodominio.com>/acs
Esempio

<saml:Response
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"

xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="7840062d379d82598d87ca04c8622f436bb03aa1c7"
Version="2.0"
IssueInstant="2014-11-05T17:32:07Z"

Destination+"https://wwww.google.com/a/tuodominio.com/acs
       InResponseTo="midihfjkfkpcmbmfhhoehbokhbkeapbbinldpeen">

 

Elemento Attributo Recipient dell'elemento <SubjectConfirmationData>
 
Descrizione

L'attributo Recipient definisce l'entità che deve ricevere  
l'elemento Subject.

L'attributo è obbligatorio e deve contenere l'URI dell'ACS.

Nota: la distinzione tra lettere maiuscole e minuscole è rilevante.

 

Obbligatorio

Valore

https://www.google.com/a/<tuodominio.com>/acs
 
Esempio

<saml:Subject>

<saml:NameID SPNameQualifier="google.com/a/tuodominio.com"

Format="urn:oasis:names:tc:SAML:2.0:nameid-format:email">utente@tuodominio.com</saml:NameID>

<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">

<saml:SubjectConfirmationData NotOnOrAfter="2014-11-05T17:37:07Z"

Recipient="https://www.google.com/a/tuodominio.com/acs"

InResponseTo="midihfjkfkpcmbmfhjoehbokhbkeapbbinldpeen"

</saml:SubjectConfirmation> 

Per informazioni dettagliate su tutti gli elementi obbligatori, consulta l'articolo Requisiti per l'asserzione SSO.

"Impossibile accedere a questo servizio in quanto la richiesta di accesso non contiene i dati del destinatario. Accedi e riprova".

Questo errore di solito indica che la risposta SAML restituita dal provider di identità non contiene un valore Recipient leggibile (o che il valore Recipient non è corretto). Il valore Recipient è una componente importante della risposta SAML.

  1. Per diagnosticare ulteriormente questo problema, è necessario acquisire le intestazioni HTTP durante un tentativo di accesso.
  2. Estrai la richiesta e la risposta SAML dalle intestazioni HTTP.
  3. Assicurati che il valore Recipient nella risposta SAML sia esistente e che corrisponda al valore nella richiesta SAML.

Nota. È possibile che questo messaggio di errore venga visualizzato come "Impossibile accedere al servizio perché la richiesta di accesso contiene informazioni sul destinatario non valide." Esegui l'accesso e riprova".

"Impossibile accedere all'account poiché non è stato possibile verificare i dati di accesso".

Questo messaggio di errore indica un problema con i certificati che utilizzi per accedere al flusso di autenticazione. Nello specifico, ciò significa di solito che la chiave privata utilizzata per firmare la risposta SAML non corrisponde al certificato di chiave pubblica archiviato da G Suite.

Questo errore potrebbe inoltre significare che la risposta SAML non contiene un nome utente di Google Account utilizzabile. G Suite analizza la risposta SAML al fine di individuare un elemento denominato NameID e il contenuto atteso di tale elemento è un nome utente o un indirizzo email di G Suite.

  • Nella Console di amministrazione di G Suite, vai a Strumenti avanzati > Imposta single sign-on (SSO) per accedere alla pagina di configurazione del servizio SSO. Assicurati di stare utilizzando un certificato valido e caricalo nuovamente nel modulo di configurazione SSO.
  • Se utilizzi un indirizzo email completo nell'elemento NameID (necessario se utilizzi SSO in un ambiente G Suite con più domini), assicurati che l'attributo Format dell'elemento NameID specifichi che è necessario utilizzare un indirizzo email completo, come nel seguente esempio: Format="urn:oasis:names:tc:SAML:2.0:nameid-format:email"
  • Assicurati di non inserire in NameID dati diversi da un nome utente o un indirizzo email validi, ad esempio il campo identificativo di un database. Per farlo, estrai la risposta SAML che stai inviando a G Suite e controlla che il valore dell'elemento NameID sia corretto.
  • Se il provider di identità crittografa l'asserzione SAML, disattiva la crittografia e assicurati che l'asserzione venga inviata a Google in formato non crittografato, in modo che sia leggibile da G Suite.
  • Assicurati che nella risposta SAML non siano inclusi caratteri ASCII non standard. Generalmente questo problema si verifica negli attributi DisplayName, GivenName e Surname nell'elemento AttributeStatement.

Ad esempio:
<Attribute Name="http://schemas.microsoft.com/identity/claims/displayname">
<AttributeValue>Blüte, Eva</AttributeValue>
</Attribute>
<Attribute  
Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname">
<AttributeValue>Eva</AttributeValue>
</Attribute>
<Attribute  
Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname">
<AttributeValue>Blüte</AttributeValue>
</Attribute>

Questi attributi non sono supportati e possono quindi essere omessi. Se ciò non è  
possibile, essi devono contenere soltanto caratteri ASCII standard. 
 

"Impossibile accedere a questo servizio poiché i dati di accesso sono scaduti. Esegui l'accesso e riprova".

Per motivi di sicurezza, il flusso di accesso SSO deve essere completato entro un intervallo determinato, altrimenti l'autenticazione avrà esito negativo. Se l'orologio del tuo provider di identità non è preciso, gran parte dei tentativi di accesso, se non tutti, saranno esterni all'intervallo accettabile e l'autenticazione non riuscirà, restituendo il messaggio di errore sopra riportato.

  • Controlla l'orologio sul server del tuo provider di identità. Questo errore è quasi sempre causato da un orologio del provider di identità non preciso che aggiunge timestamp non corretti alla risposta SAML.
  • Esegui nuovamente la sincronizzazione dell'orologio del server del provider di identità con un server di riferimento ora su Internet più affidabile. In genere, quando questo problema si presenta all'improvviso in un ambiente di produzione, il motivo è la mancata riuscita dell'ultima sincronizzazione temporale, che comporta l'imprecisione dell'ora del server. Ripetendo la sincronizzazione dell'ora (possibilmente con un server di riferimento dell'ora più affidabile) risolverai rapidamente il problema.
  • Questo problema può inoltre presentarsi quando si invia nuovamente la risposta SAML da un tentativo di accesso precedente. L'esame della richiesta e della risposta SAML (ottenute dai log delle intestazioni HTTP rilevate durante un tentativo di accesso) può aiutarti a eseguire ulteriormente il debug.
"Questo servizio non è accessibile perché i dati di accesso non sono ancora validi. Accedi e riprova".

Per motivi di sicurezza, il flusso di accesso SSO deve essere completato entro un intervallo determinato, altrimenti l'autenticazione avrà esito negativo. Se l'orologio del tuo provider di identità non è preciso, gran parte dei tentativi di accesso, se non tutti, saranno esterni all'intervallo accettabile e l'autenticazione non riuscirà, restituendo il messaggio di errore sopra riportato.

  • Controlla l'orologio sul server del tuo provider di identità. Questo errore è quasi sempre causato da un orologio del provider di identità non preciso che aggiunge timestamp non corretti alla risposta SAML.
  • Esegui nuovamente la sincronizzazione dell'orologio del server del provider di identità con un server di riferimento ora su Internet più affidabile. In genere, quando questo problema si presenta all'improvviso in un ambiente di produzione, il motivo è la mancata riuscita dell'ultima sincronizzazione temporale, che comporta l'imprecisione dell'ora del server. Ripetendo la sincronizzazione dell'ora (possibilmente con un server di riferimento dell'ora più affidabile) risolverai rapidamente il problema.
È stato utile?
Come possiamo migliorare l'articolo?