Single Sign-On

Last reviewed 2023-02-27 UTC

Puoi configurare il tuo account Cloud Identity o Google Workspace per l'uso del Single Sign-On (SSO). Quando attivi il servizio SSO, agli utenti non viene chiesto di inserire una password quando tentano di accedere ai servizi Google. Vengono invece reindirizzati a un provider di identità esterno (IdP) per l'autenticazione.

L'utilizzo del servizio SSO può offrire diversi vantaggi:

  • Offri agli utenti un'esperienza migliore perché possono utilizzare le credenziali esistenti per l'autenticazione e non devono inserire spesso le credenziali.
  • Ti assicuri che l'IdP esistente rimanga il sistema di registrazione per l'autenticazione degli utenti.
  • Non è necessario sincronizzare le password con Cloud Identity o Google Workspace.

Per utilizzare SSO, un utente deve avere un account utente in Cloud Identity o Google Workspace e un'identità corrispondente nell'IdP esterno. L'accesso SSO è quindi comunemente utilizzato in combinazione con una fonte autorevole esterna che esegue automaticamente il provisioning degli utenti su Cloud Identity o Google Workspace.

Procedura Single Sign-On

Cloud Identity e Google Workspace supportano il protocollo SAML (Security Assertion Markup Language) 2.0 per il Single Sign-On. SAML è uno standard aperto per lo scambio di dati di autenticazione e autorizzazione tra un IdP SAML e fornitori di servizi SAML. Quando utilizzi il servizio SSO per Cloud Identity o Google Workspace, il tuo IdP esterno è l'IdP SAML e Google è il fornitore di servizi SAML.

Google implementa l'associazione POST HTTP 2.0 SAML. Questa associazione specifica in che modo le informazioni di autenticazione vengono scambiate tra l'IdP SAML e il fornitore di servizi SAML. Il seguente diagramma illustra un esempio di come funziona questo processo quando utilizzi SSO per accedere alla console Google Cloud.

Utilizzo di SSO per accedere alla console Google Cloud.

  1. Devi indirizzare il browser alla console Google Cloud (o a qualsiasi altra risorsa Google che richiede l'autenticazione).
  2. Poiché non hai ancora eseguito l'autenticazione, la console Google Cloud reindirizza il tuo browser ad Accedi con Google.
  3. Accedi con Google restituisce una pagina di accesso, in cui ti viene chiesto di inserire il tuo indirizzo email.
  4. Inserisci il tuo indirizzo email e invia il modulo.
  5. Accedi con Google cerca l'account Cloud Identity o Google Workspace associato al tuo indirizzo email.
  6. Poiché per l'account Cloud Identity o Google Workspace associato è attivo il servizio Single Sign-On, Accedi con Google reindirizza il browser all'URL dell'IdP esterno configurato. Prima di inviare il reindirizzamento, vengono aggiunti due parametri all'URL, RelayState e SAMLRequest.

    • RelayState contiene un identificatore che l'IdP esterno dovrebbe passare in un secondo momento.
    • SAMLRequest contiene la richiesta di autenticazione SAML, un documento XML delimitato, con codifica Base64 e con codifica URL. In formato decodificato, la richiesta di autenticazione SAML è simile alla seguente:

      <samlp:AuthnRequest
              ProviderName="google.com"
              IsPassive="false"
              AssertionConsumerServiceURL="https://www.google.com/a/example.com/acs"
              ...>
        <saml:Issuer xmlns:saml="...">google.com</saml:Issuer>
        <samlp:NameIDPolicy
              AllowCreate="true"
              Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
      </samlp:AuthnRequest>
      

    Questa richiesta di esempio indica all'IdP esterno di autenticare l'utente, di creare un'asserzione SAML per il segmento di pubblico google.com e di pubblicarla nel servizio consumer di asserzioni (ACS) all'indirizzo https://www.google.com/a/example.com/acs.

    Il dominio incorporato nell'URL ACS (example.com) corrisponde al dominio principale del tuo account Google Workspace o Cloud Identity.

    Se utilizzi la funzionalità di emissione specifica per il dominio quando configuri SSO, l'emittente è google.com/a/DOMAIN anziché google.com, dove DOMAIN è il dominio principale del tuo account Cloud Identity o Google Workspace.

    I passaggi eseguiti dall'IdP esterno per eseguire l'autenticazione dipendono dall'IdP e dalla sua configurazione: ad esempio, potrebbe visualizzare una finestra di dialogo di accesso oppure richiedere l'autenticazione MFA o un'impronta. Una volta completati correttamente questi passaggi, lo scambio SAML continuerà:

    SAML Exchange tramite SSO.

  7. L'IdP esterno restituisce una pagina HTML appositamente predisposta per far sì che il browser invii immediatamente una richiesta POST HTTP all'URL ACS. Questa richiesta contiene due parametri:

    • RelayState, che contiene il valore trasmesso originariamente all'IdP nella richiesta di autenticazione SAML.
    • SAMLResponse, che contiene l'asserzione SAML con codifica base64. L'asserzione SAML è un documento XML in cui si afferma che l'IdP ha autenticato correttamente l'utente. In forma decodificata, l'asserzione SAML è simile alla seguente:

      <samlp:Response ...>
        ...
        <Assertion x...>
          <Issuer>https://idp.example.org/</Issuer>
          <Signature ...>
            ...
          </Signature>
          <Subject>
            <NameID Format="...:nameid-format:emailAddress">bob@example.org</NameID>
            ...
          </Subject>
          <Conditions NotBefore="..." NotOnOrAfter="...">
            <AudienceRestriction>
              <Audience>google.com</Audience>
            </AudienceRestriction>
          </Conditions>
          <AttributeStatement>
            ...
          </AttributeStatement>
          <AuthnStatement AuthnInstant="..." ...>
            <AuthnContext>
              <AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</AuthnContextClassRef>
            </AuthnContext>
          </AuthnStatement>
        </Assertion>
      </samlp:Response>
      

    Questa asserzione di esempio è stata emessa per il segmento di pubblico google.com (corrispondente all'emittente della richiesta di autenticazione SAML) e indica che l'IdP https://idp.example.org/ ha autenticato l'utente bob@example.org.

    L'asserzione SAML contiene anche una firma digitale. L'IdP crea questa firma utilizzando la chiave privata di un certificato di firma. La chiave privata è nota solo all'IdP. La chiave pubblica corrispondente fa parte della configurazione SSO in Cloud Identity o Google Workspace e viene condivisa con Accedi con Google.

    L'asserzione SAML contiene anche una firma digitale che consente al fornitore di servizi SAML di verificare l'autenticità dell'asserzione.

  8. Il browser pubblica l'asserzione SAML nell'endpoint ACS di Google.

  9. L'endpoint ACS verifica la firma digitale dell'asserzione SAML. Questo controllo viene eseguito per garantire che l'asserzione provenga dall'IdP esterno attendibile e che non sia stata manomessa. Supponendo che la firma sia valida, l'endpoint ACS analizza i contenuti dell'asserzione, inclusa la verifica delle informazioni sul pubblico e la lettura dell'attributo NameID.

  10. L'endpoint ACS cerca il tuo account utente abbinando il NameID dell'asserzione SAML all'indirizzo email principale dell'utente. L'endpoint avvia quindi una sessione.

  11. In base alle informazioni codificate nel parametro RelayState, l'endpoint determina l'URL della risorsa a cui avevi intenzione di accedere in origine e ti reindirizzeremo alla console Google Cloud.

Accesso avviato dall'IdP

Il processo descritto nella sezione precedente è a volte indicato come accesso avviato dal fornitore di servizi perché inizia dal fornitore di servizi, che nell'esempio precedente è la console Google Cloud.

SAML definisce inoltre un flusso alternativo denominato IdP-initiated sign-on (Accesso avviato dall'IdP), che inizia a partire dall'IdP. Google non supporta questo flusso, ma puoi ottenere risultati simili utilizzando il seguente URL per avviare un accesso avviato dal fornitore di servizi:

https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://console.cloud.google.com/

In questo esempio, DOMAIN è il dominio principale del tuo account Cloud Identity o Google Workspace.

Autenticazione a più fattori

Per proteggere gli account utente da accessi non autorizzati, puoi richiedere agli utenti di fornire un secondo fattore durante l'autenticazione. Esistono due modi per implementare l'autenticazione a più fattori quando si utilizza il Single Sign-On:

  1. Se il tuo IdP esterno supporta l'autenticazione a più fattori, puoi consentirgli di eseguire l'autenticazione a più fattori come parte del processo di accesso basato su SAML. In questo caso, non è necessaria alcuna configurazione aggiuntiva in Cloud Identity o Google Workspace.
  2. Se il tuo IdP non supporta l'autenticazione a più fattori, puoi configurare il tuo account Cloud Identity o Google Workspace per eseguire la verifica in due passaggi immediatamente dopo che un utente si è autenticato con l'IdP esterno.

Networking

Nell'associazione di reindirizzamento HTTP SAML 2.0, l'IdP e il fornitore di servizi non comunicano direttamente. Tutte le comunicazioni vengono invece inoltrate tramite il browser dell'utente, come mostrato nel seguente diagramma:

Comunicazione inoltrata tramite il browser dell'utente.

Data questa architettura, non è necessario che l'IdP sia esposto su internet né abbia accesso a internet, purché gli utenti siano in grado di accedervi dalla rete aziendale.

Configurazione dell'IdP esterno

Cloud Identity e Google Workspace consentono di configurare il Single Sign-On utilizzando le seguenti funzionalità:

  • Profili SAML: puoi creare un profilo SAML per ciascun IdP con cui vuoi eseguire l'integrazione. Per ogni utente, gruppo o unità organizzativa del tuo account Cloud Identity o Google Workspace, sceglierai se gli utenti devono utilizzare SSO e quale profilo SAML devono utilizzare.

  • Profili SSO dell'organizzazione classica: puoi creare un singolo profilo dell'organizzazione da integrare con un singolo IdP. Per ogni utente, gruppo o unità organizzativa del tuo account Cloud Identity o Google Workspace, scegli se utilizzare o meno il servizio SSO.

Il modo giusto per configurare il tuo IdP dipende dall'uso o meno di profili SAML o profili dell'organizzazione classici. La seguente tabella riassume le impostazioni che in genere devono essere configurate in un IdP esterno per garantire la compatibilità.

Configurazione Impostazione obbligatoria per i
profili dell'organizzazione classica
Impostazione richiesta per i
profili SAML
Note
ID nome Indirizzo email principale di un utente Indirizzo email principale di un utente
Formato ID nome urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
ID entità

Se la funzionalità emittente specifica per il dominio è abilitata:

google.com/a/DOMAIN

Se la funzionalità emittente specifica per il dominio è disabilitata (impostazione predefinita):

google.com

Utilizza la funzionalità dell'emittente specifica per il dominio se vuoi integrare più account Google Workspace o Cloud Identity con lo stesso IdP. In caso contrario, lasciala disattivata.

ID entità univoco del tuo profilo SAML.

A seconda della data di creazione del profilo SAML, l'ID entità utilizza uno dei seguenti formati:

https://accounts.google.com/samlrp/metadata?rpid=ID

https://accounts.google.com/samlrp/ID

Pattern URL ACS (o URL di reindirizzamento) https://www.google.com/a/* URL ACS univoco del tuo profilo SAML.

A seconda della data di creazione del profilo SAML, l'URL utilizza uno dei seguenti formati:

https://accounts.google.com/samlrp/acs?rpid=ID

https://accounts.google.com/samlrp/ID/acs

Richiedi firma Off Off Le richieste di autenticazione SAML emesse da Accedi con Google non vengono mai firmate
Firma delle asserzioni On On Le asserzioni SAML devono essere firmate per consentire ad Accedi con Google di verificarne l'autenticità.

Quando configuri il servizio SSO nella Console di amministrazione, devi caricare la chiave pubblica della coppia di chiavi di firma del token.
Crittografia delle asserzioni Off Off
Algoritmo di firma RSA-SHA256 RSA-SHA256 RSA-SHA256 viene talvolta abbreviato come RS256

Passaggi successivi