Single Sign-On Keycloak

Last reviewed 2024-04-29 UTC

Questa guida illustra come configurare il servizio Single Sign-On (SSO) tra Keycloak e il tuo account Cloud Identity o Google Workspace utilizzando Federazione SAML. Nel documento si presuppone che tu abbia installato e utilizzato Keycloak.

Obiettivi

  • Configura il server Keycloak in modo da poterlo utilizzare come identità o provider di identità (IdP) di Cloud Identity o Google Workspace.
  • Configura il tuo account Cloud Identity o Google Workspace in modo che che utilizza Keycloak per SSO.

Prima di iniziare

  1. Se non hai un account Cloud Identity, registrati.
  2. Assicurati che il tuo account Cloud Identity disponga dei privilegi di super amministratore.
  3. Se il server Keycloak viene utilizzato per gestire più di un realm, decidi quale realm vuoi utilizzare per la federazione.
  4. Assicurati di disporre dell'accesso amministrativo all'area di autenticazione selezionata.

Creare un profilo SAML

Per configurare il Single Sign-On con Keycloak, devi prima creare un profilo SAML nel tuo account Cloud Identity o Google Workspace. Il profilo SAML contiene le impostazioni relative al server Keycloak, inclusi l'URL e di firma del certificato.

Successivamente, assegna il profilo SAML a determinati gruppi o unità organizzative.

Per creare un nuovo profilo SAML nel tuo account Cloud Identity o Google Workspace:

  1. Nella Console di amministrazione, vai a Sicurezza > Autenticazione > SSO con IdP di terze parti.

    Passare al SSO con IdP di terze parti

  2. Fai clic su Profili SSO di terze parti > Aggiungi profilo SAML.

  3. Nella pagina SAML SSO profile (Profilo SSO SAML), inserisci le seguenti impostazioni:

    • Nome: Keycloak
    • ID entità IdP:

      Keycloak 17 o versione successiva

      https://KEYCLOAK/realms/REALM
      

      Keycloak 16 o versione precedente

      https://KEYCLOAK/auth/realms/REALM
      
    • URL della pagina di accesso:

      Keycloak 17 o versioni successive

      https://KEYCLOAK/realms/REALM/protocol/saml
      

      Keycloak 16 o versioni precedenti

      https://KEYCLOAK/auth/realms/REALM/protocol/saml
      
    • URL della pagina di uscita:

      Keycloak 17 o versioni successive

      https://KEYCLOAK/realms/REALM/protocol/openid-connect/logout
      

      Keycloak 16 o versione precedente

      https://KEYCLOAK/auth/realms/REALM/protocol/openid-connect/logout?redirect_uri=https://KEYCLOAK/auth/realms/REALM/account/
      
    • URL per la modifica della password:

      Keycloak 17 o versioni successive

      https://KEYCLOAK/realms/REALM/account
      

      Keycloak 16 o versioni precedenti

      https://KEYCLOAK/auth/realms/REALM/account
      

    In tutti gli URL, sostituisci quanto segue:

    • KEYCLOAK: il nome di dominio completo del tuo server Keycloak
    • REALM: il nome del realm selezionato

    Non caricare ancora un certificato di verifica.

  4. Fai clic su Salva.

    La pagina Profilo SSO SAML visualizzata contiene due URL:

    • ID entità
    • URL ACS

    Questi URL ti serviranno nella sezione successiva quando configuri Keycloak.

Configura Keycloak

Puoi configurare il server Keycloak creando un client.

Crea un client

Crea un nuovo client SAML in Keycloak:

  1. Accedi a Keycloak e apri la console di amministrazione.
  2. Seleziona il realm da utilizzare per la federazione.
  3. Nel menu, seleziona Client.
  4. Fai clic su Crea client.
  5. Configura le seguenti impostazioni per il client:

    Keycloak 19 o versioni successive

    • Tipo di client: SAML
    • ID cliente: URL entità del tuo profilo SSO.
    • Nome: Google Cloud

    Keycloak 18 o versioni precedenti

    • ID cliente: URL entità del tuo profilo SSO.
    • Client Protocol (Protocollo client): saml
    • Client SAML Endpoint (Endpoint SAML client): lascia vuoto
  6. Fai clic su Salva.

  7. Specifica i dettagli del client configurando il le seguenti impostazioni:

    Keycloak 19 o versioni successive

    Nella scheda Impostazioni:

    • URI di reindirizzamento validi: URL ACS del tuo profilo SSO
    • Formato ID nome: email
    • Forza formato ID nome: On
    • Firma documenti: off
    • Firma asserzioni: on

    Nella scheda Chiavi:

    • Firma del cliente obbligatoria: off

    Keycloak 18 o precedente

    • Nome: un nome come Google Cloud
    • Firma asserzioni: on
    • Firma del cliente obbligatoria: off
    • Forza formato ID nome: On
    • Name ID Format (Formato ID nome): email
    • URI di reindirizzamento validi: URL ACS del tuo profilo SSO

    Mantieni i valori predefiniti per tutte le altre impostazioni.

  8. Fai clic su Salva.

Esporta il certificato di firma

Dopo aver autenticato un utente, Keycloak passa un'asserzione SAML a Cloud Identity o Google Workspace. Per attivare Cloud Identity e Google Workspace per verificare l'integrità l'autenticità di tale asserzione, Keycloak la firma con uno speciale di firma del token e fornisce un certificato che abilita Cloud Identity o Google Workspace per controllare la firma.

Ora esporta il certificato di firma da Keycloak:

  1. Nel menu, seleziona Impostazioni del realm.
  2. Seleziona la scheda Chiavi.
  3. Individua la riga relativa ad Algoritmo: RS256. Se è presente più di una riga, utilizza una con Use: SIG. Poi seleziona Certificate (Certificato).

    Viene visualizzata una finestra di dialogo che contiene un certificato con codifica base64.

  4. Copia il valore del certificato con codifica base64 negli appunti.

Prima di poter utilizzare il certificato di firma, devi convertirlo in formato PEM aggiungendo un'intestazione e un piè di pagina.

  1. Apri un editor di testo come Blocco note o vim.
  2. Incolla l'intestazione seguente, seguita da una nuova riga:

    -----BEGIN CERTIFICATE-----
    
  3. Incolla il certificato con codifica Base64 dagli appunti.

  4. Aggiungi una nuova riga e incolla il seguente piè di pagina:

    -----END CERTIFICATE-----
    

    Dopo la modifica, il file sarà simile al seguente:

    -----BEGIN CERTIFICATE-----
    MIICmzCCAYMCBgF7v8/V1TANBgkq...
    -----END CERTIFICATE-----
    
  5. Salva il file in una posizione temporanea sul computer.

Completa il profilo SAML

Utilizza il certificato di firma per completare la configurazione del tuo profilo SAML:

  1. Torna alla Console di amministrazione e vai a Sicurezza > Autenticazione > tramite SSO con IdP di terze parti.

    Passare al SSO con IdP di terze parti

  2. Apri il profilo SAML Keycloak che hai creato in precedenza.

  3. Fai clic sulla sezione Dettagli IdP per modificare le impostazioni.

  4. Fai clic su Carica certificato e scegli il certificato di firma del token che scaricati in precedenza.

  5. Fai clic su Salva.

Il tuo profilo SAML è completo, ma devi ancora assegnarlo.

Assegna il profilo SAML

Seleziona gli utenti a cui applicare il nuovo profilo SAML:

  1. Nella pagina SSO con IdP di terze parti della Console di amministrazione, fai clic su Gestisci assegnazioni profilo SSO > Gestisci.

    Vai a Gestisci le assegnazioni dei profili SSO

  2. Nel riquadro a sinistra, seleziona il gruppo o l'unità organizzativa per cui vuoi applicare il profilo SSO. Per applicare il profilo a tutti gli utenti, seleziona l'unità organizzativa principale.

  3. Nel riquadro a destra, seleziona Un altro profilo SSO.

  4. Nel menu, seleziona il profilo SSO Keycloak - SAML che hai creato in precedenza.

  5. Fai clic su Salva.

Ripeti i passaggi per assegnare il profilo SAML a un altro gruppo o a un'altra unità organizzativa.

Prova il Single Sign-On

Hai completato la configurazione di Single Sign-On. Ora puoi verificare se la funzionalità SSO funziona come previsto.

  1. Scegli un utente Keycloak che soddisfi i seguenti criteri:

    • L'utente dispone di un indirizzo email.
    • L'indirizzo email corrisponde all'indirizzo email principale di un utente esistente in Cloud Identity o Google Workspace .
    • L'utente di Cloud Identity non dispone dei privilegi di super amministratore.

      Gli account utente con privilegi di super amministratore devono sempre accedere utilizzando le credenziali Google, pertanto non sono adatti per testare l'accesso singolo.

  2. Apri una nuova finestra del browser e vai alla console Google Cloud.

  3. Nella pagina di accesso di Google, inserisci l'indirizzo email dell'account utente, e poi fai clic su Avanti.

    pagina Accedi con Google.

    Viene visualizzato Keycloak.

  4. Inserisci le tue credenziali Keycloak e poi fai clic su Accedi.

    Dopo l'autenticazione, Keycloak ti reindirizza nuovamente alla console Google Cloud. Poiché si tratta del primo accesso per questo utente, ti viene chiesto di accettare i Termini di servizio e le Norme sulla privacy di Google.

  5. Se accetti i termini, fai clic su Accetta.

  6. Ti reindirizziamo alla console Google Cloud, dove ti viene chiesto di confermare le preferenze e accettare i Termini di servizio di Google Cloud. Se accetti i termini, fai clic su e poi su Accetta e continua.

  7. Fai clic sull'icona dell'avatar, quindi su Esci.

    Verrai reindirizzato a Keycloak.

Se hai difficoltà ad accedere, tieni presente che gli account utente con privilegi di super amministratore possono bypassare l'SSO, quindi puoi comunque utilizzare la Console di amministrazione per verificare o modificare le impostazioni.

(Facoltativo) Configura i reindirizzamenti per gli URL di servizio specifici del dominio

Quando esegui il collegamento alla console Google Cloud da portali o documenti interni, puoi migliorare l'esperienza utente utilizzando gli URL di servizio specifici del dominio.

A differenza dei normali URL di servizio come https://console.cloud.google.com/, gli URL di servizi specifici del dominio includono il nome del dominio principale. Gli utenti non autenticati che fanno clic su un link a un URL di servizio specifico del dominio vengono reindirizzati immediatamente a Keycloak anziché visualizzare prima una pagina di accesso a Google.

Ecco alcuni esempi di URL di servizi specifici del dominio:

Servizio Google URL Logo
Console Google Cloud https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://console.cloud.google.com Logo Google Cloud
Documenti Google https://docs.google.com/a/DOMAIN Logo di Documenti Google
Fogli Google https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://sheets.google.com Logo di Fogli Google
Google Sites https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://slides.google.com Logo di Google Sites
Google Drive https://drive.google.com/a/DOMAIN Logo di Google Drive
Gmail https://mail.google.com/a/DOMAIN Logo di Gmail
Google Gruppi https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://groups.google.com Logo di Google Gruppi
Google Keep https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://keep.google.com Logo di Google Keep
Looker Studio https://www.google.com/a/DOMAIN/ServiceLogin?continue=https://lookerstudio.google.com Logo di Looker Studio

Per configurare URL di servizio specifici del dominio in modo che reindirizzino a Keycloak, procedi nel seguente modo le seguenti:

  1. Nella Console di amministrazione, nella pagina SSO con provider di identità di terze parti, fai clic su URL di servizi specifici per dominio > Modifica.

    Andare agli URL di servizio specifici del dominio

  2. Imposta Reindirizza automaticamente gli utenti all'IdP di terze parti nel profilo SSO seguente su Attivato.

  3. Imposta Profilo SSO su Keycloak.

  4. Fai clic su Salva.

(Facoltativo) Configurare le verifiche dell'accesso

L'accesso con Google potrebbe richiedere agli utenti un'ulteriore verifica quando accedono da dispositivi sconosciuti o quando il loro tentativo di accesso sembra sospetto per altri motivi. Queste verifiche dell'accesso contribuiscono a migliorare la sicurezza e ti consigliamo di lasciarle abilitate.

Se ritieni che le verifiche dell'accesso siano troppo complesse, puoi disattivare delle verifiche dell'accesso nel seguente modo:

  1. Nella Console di amministrazione, vai a Sicurezza > Autenticazione > Verifiche dell'accesso.
  2. Nel riquadro a sinistra, seleziona un'unità organizzativa per la quale vuoi disabilitare le verifiche dell'accesso. Per disattivare le verifiche dell'accesso per tutti gli utenti, seleziona l'unità organizzativa principale.
  3. In Impostazioni per gli utenti che eseguono l'accesso con altri profili SSO, seleziona Non chiedere agli utenti ulteriori verifiche da parte di Google.
  4. Fai clic su Salva.

Passaggi successivi