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, creare un account.
  2. Assicurati che il tuo account Cloud Identity abbia super amministratore privilegiati.
  3. Se il tuo server Keycloak viene utilizzato per gestire più di un'area di autenticazione, decidi l'area di autenticazione da utilizzare per la federazione.
  4. Assicurati di disporre dell'accesso amministrativo all'area di autenticazione selezionata.

Crea un profilo SAML

Per configurare il Single Sign-On con Keycloak, devi prima creare un profilo SAML nel tuo un 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 in Cloud Identity o Google Workspace account, procedi nel seguente modo:

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

    Vai a 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 versione successiva

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

      Keycloak 16 o versione precedente

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

      Keycloak 17 o versione successiva

      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 versione successiva

      https://KEYCLOAK/realms/REALM/account
      

      Keycloak 16 o versione precedente

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

    Sostituisci quanto segue in tutti gli URL:

    • KEYCLOAK: il nome di dominio completo di il tuo server Keycloak
    • REALM: il nome dell'area di autenticazione selezionata

    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 saranno necessari nella sezione successiva durante la configurazione di 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 l'area di autenticazione da utilizzare per la federazione.
  3. Nel menu, seleziona Clienti.
  4. Fai clic su Crea client.
  5. Configura le seguenti impostazioni per il client:

    Keycloak 19 o versioni successive

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

    Keycloak 18 o precedente

    • ID client: 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
    • Name ID Format (Formato ID nome): email
    • Force Name ID Format (Forza formato ID nome): on
    • Firma documenti: off
    • Sign Assertions (Firma asserzioni): on

    Nella scheda Chiavi:

    • Firma client obbligatoria: off

    Keycloak 18 o precedente

    • Nome: un nome come Google Cloud
    • Sign Assertions (Firma asserzioni): on
    • Firma client obbligatoria: off
    • Force Name ID Format (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 esporti il certificato di firma da Keycloak:

  1. Nel menu, seleziona Impostazioni area di autenticazione.
  2. Seleziona la scheda Chiavi.
  3. Individua la riga relativa ad Algoritmo: RS256. Se è presente più di una riga, utilizza una con Use: SIG. Seleziona 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 la seguente intestazione, 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

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

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

    Vai a 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 deve essere applicato 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 nell'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 del Single Sign-On. Ora puoi controllare se il servizio 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 usando le credenziali Google, perciò non sono adatte per il test di singoli l'accesso.

  2. Apri una nuova finestra del browser e vai al 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.

    Verrai reindirizzato a Keycloak.

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

    Dopo l'autenticazione, Keycloak ti reindirizza al nella console Google Cloud. Poiché questo è il primo accesso dell'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. Si aprirà la console Google Cloud, dove ti verrà chiesto di confermare le preferenze e accettare i Termini di servizio di Google Cloud. Se accetta 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 problemi di accesso, tieni presente che gli account utente con privilegi possono bypassare l'accesso SSO, quindi puoi comunque utilizzare la Console di amministrazione modificare le impostazioni.

(Facoltativo) Configura i reindirizzamenti per gli URL dei servizi specifici del dominio

Quando colleghi la console Google Cloud da documenti o portali interni, puoi migliorare l'esperienza utente usando 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. Non autenticato gli utenti che fanno clic su un link all'URL di un servizio specifico del dominio vengono reindirizzati immediatamente Keycloak anziché visualizzare prima una pagina di accesso di 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 pagina SSO con IdP di terze parti della Console di amministrazione, Fai clic su URL dei servizi specifici del dominio > Modifica.

    Vai agli URL dei servizi 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

Accedi con Google potrebbe chiedere agli utenti di eseguire ulteriori verifiche 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 per lasciare abilitate le verifiche dell'accesso.

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 nell'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