Configura i provider OIDC per GKE Identity Service

Questo documento spiega come configurare il provider di identità OpenID Connect (OIDC) scelto per GKE Identity Service. Per saperne di più su GKE Identity Service, consulta la panoramica.

Questo documento è rivolto agli amministratori della piattaforma o a chiunque gestisca la configurazione delle identità nella tua organizzazione. Se sei un amministratore di cluster o un operatore di applicazioni, chiedi all'amministratore della piattaforma di seguire questa sezione prima di iniziare Configura i cluster per il servizio GKE Identity a livello di parco risorse o Configura i cluster per il servizio identità GKE con OIDC.

Registra il servizio di identità GKE con il tuo provider

La configurazione di GKE Identity Service richiede un singolo ID client e un singolo secret del tuo provider di identità. Questo ID e il secret vengono utilizzati da GKE Identity Service durante la connessione al provider nell'ambito del flusso di autenticazione per gli utenti. Per ottenerli, devi registrare GKE Identity Service con il tuo provider come applicazione client, seguendo la procedura standard per il provider scelto. Nella sezione successiva puoi trovare alcuni dettagli di registrazione specifici per i provider più utilizzati.

Per gli URL di reindirizzamento, specifica i seguenti valori:

  • https://console.cloud.google.com/kubernetes/oidc è l'URL di reindirizzamento per la console Google Cloud.
  • http://localhost:PORT/callback è l'URL di reindirizzamento per gcloud CLI. Puoi specificare qualsiasi numero di porta superiore a 1024.
  • APISERVER-URL:11001/finish-login è l'URL di reindirizzamento se scegli di eseguire l'autenticazione utilizzando l'accesso al nome di dominio completo. Sostituisci APISERVER-URL con l'URL che ha il nome di dominio completo del server del cluster. Ad esempio, se APISERVER-URL è https://cluster.company.com, redirect_uri deve essere https://cluster.company.com:11001/finish-login.

Salva l'ID client e il client secret ottenuti nel passaggio di registrazione. Condividi questi dettagli con gli amministratori del cluster che devono configurare il servizio GKE Identity. Devi assicurarti di aver eseguito le seguenti operazioni:

  • Configura il tuo servizio dei nomi di dominio (DNS) per risolvere APISERVER-URL nei VIP del piano di controllo (indirizzi IP virtuali). Gli utenti possono accedere al cluster utilizzando questo nome di dominio.
  • Utilizza un certificato SNI (Server Name Indication) emesso dall'autorità di certificazione (CA) aziendale considerata attendibile. Questo certificato indica in modo specifico APISERVER-URL come dominio valido, eliminando i potenziali avvisi relativi al certificato per gli utenti. Puoi fornire il certificato SNI durante la creazione del cluster. Per ulteriori informazioni sull'autenticazione mediante certificati SNI, consulta l'argomento Autenticazione con certificato SNI.
  • Se non è possibile utilizzare i certificati SNI, configura tutti i dispositivi utente in modo che il certificato CA del cluster sia attendibile. In questo modo si evitano gli avvisi relativi ai certificati, ma è necessario distribuire il certificato CA cluster a tutti gli utenti.

Per ulteriori informazioni sull'accesso degli utenti tramite questi certificati, vedi Autenticazione mediante accesso FQDN

Informazioni di configurazione del fornitore

Questa sezione fornisce informazioni aggiuntive specifiche del provider per la registrazione di GKE Identity Service. Se il tuo provider è elencato qui, registra GKE Identity Service con il tuo provider come applicazione client utilizzando le seguenti istruzioni.

Microsoft AD FS

Utilizza un set di procedure guidate di gestione di AD FS per configurare il server AD FS e il database utente AD.

  1. Apri il riquadro di gestione di AD FS.

  2. Seleziona Gruppi di applicazioni > Azioni > Aggiungi un gruppo di applicazioni.

  3. Seleziona Server Application (Applicazione server). Inserisci un nome e una descrizione a tua scelta. Fai clic su Avanti.

  4. Inserisci i due URL di reindirizzamento, come specificato sopra. Ti viene fornito un ID client. Il server AD FS identifica GKE Identity Service in questo modo. Salva l'ID client per un utilizzo futuro.

  5. Seleziona Generate a shared secret (Genera un secret condiviso). GKE Identity Service utilizza questo secret per l'autenticazione al server AD FS. Salva il secret per un secondo momento.

Configurazione dei gruppi di sicurezza (facoltativo)

  1. Nella gestione di AD FS, seleziona Affidabilità del soggetto di riferimento > Aggiungi una nuova attendibilità del componente.

  2. Seleziona Rivendicazioni sensibili e fai clic su Avvia.

  3. Seleziona Inserisci manualmente i dati sul componente di riferimento.

  4. Inserisci un nome visualizzato.

  5. Salta i due passaggi successivi.

  6. Inserisci un identificatore di attendibilità componente. Suggerimento: token-groups-claim.

  7. In Criterio di controllo dell'accesso, seleziona Consenti tutti. Ciò significa che tutti gli utenti condividono le informazioni sui propri gruppi di sicurezza con gcloud CLI e la console Google Cloud.

  8. Fai clic su Fine.

Mappatura degli attributi LDAP ai nomi delle attestazioni

  1. Nella gestione di AD FS, seleziona Fiducia di fiducia dei soggetti > Modifica criterio di emissione delle rivendicazioni.

  2. Seleziona Send LDAP Attributes as Claims (Invia attributi LDAP come attestazioni) e fai clic su Next (Avanti).

  3. In Nome regola di rivendicazione, inserisci groups.

  4. In Archivio attributi, seleziona Active Directory.

  5. Nella tabella, per Attributo LDAP, seleziona:

    • AD FS versione 5.0 e successive: gruppi di token qualificati per nome di dominio
    • Versioni di AD FS precedenti alla 5.0: gruppi di token - Nomi qualificati
  6. In Tipo di rivendicazione in uscita, seleziona:

    • AD FS versione 5.0 e successive: Gruppo
    • Versioni di AD FS precedenti alla 5.0: gruppi
  7. Fai clic su Fine, poi su Applica.

Registrazione del servizio di identità GKE con AD FS

Apri una finestra di PowerShell in modalità di amministratore e inserisci questo comando:

Grant-AD FSApplicationPermission `
  -ClientRoleIdentifier "[CLIENT_ID]" `
 -ServerRoleIdentifier [SERVER_ROLE_IDENTIFIER] `
  -ScopeName "allatclaims", "openid"

Sostituisci quanto segue:

  • [CLIENT_ID] è l'ID client ottenuto in precedenza.

  • [SERVER_ROLE_IDENTIFIER] è l'identificatore della rivendicazione inserito in precedenza. Ricorda che l'identificatore suggerito era token-groups-claim.

Azure AD

Registra un client OAuth con Azure

Per registrare un client OAuth con Azure, completa la procedura indicata ai seguenti link:

  1. Se non lo hai già fatto, configura un tenant su Azure Active Directory.

  2. Registrare un'applicazione con Microsoft Identity Platform.

  3. Apri la pagina Registrazioni app sul portale Azure e seleziona la tua applicazione per nome.

  4. Creare un client secret.

    1. Fai clic su Add a certificate or secret (Aggiungi un certificato o un secret) in Essentials. Viene visualizzato un elenco di certificati e un elenco di secret.

    2. Fai clic su Nuovo segreto client. Assegna un nome al secret e fai clic su Add (Aggiungi).

    3. Salva il valore* del secret in una posizione sicura. Non potrai recuperarlo dopo aver chiuso o aggiornato la pagina.

  5. Aggiungi gli URI di reindirizzamento.

    1. Torna alla pagina dell'applicazione.

    2. Seleziona Add a Redirect URI (Aggiungi un URI di reindirizzamento) in Essentials. Viene visualizzata la pagina Autenticazione.

    3. Scegli Aggiungi una piattaforma e sulla destra viene visualizzato il riquadro denominato Configura piattaforme.

    4. Scegli Web. In URL di reindirizzamento, inserisci http://localhost:PORT/callback per il flusso di accesso dell'interfaccia a riga di comando di gcloud. Scegli un valore PORT maggiore di 1024. Fai clic sul pulsante Configura.

    5. Fai clic sul pulsante Aggiungi URI per aggiungere un altro URI, https://console.cloud.google.com/kubernetes/oidc, per l'accesso alla console Google Cloud.

    6. Fai clic sul pulsante Salva in alto.

Ora la registrazione del cliente è stata completata. Dovresti avere le seguenti informazioni da condividere con l'amministratore del cluster:

  • URI emittente: https://login.microsoftonline.com/TENANT_ID/v2.0. L'ID tenant viene visualizzato come Directory (tenant) ID nella pagina dell'applicazione nel portale Azure.

  • ID client: l'ID client viene visualizzato come Application (client) ID nella pagina dell'applicazione nel portale Azure.

  • Client secret: ti è stato fornito questo valore nell'ultimo passaggio. Non potrai recuperarlo se chiudi la pagina al momento della creazione del secret. Assicurati di salvare il valore in una posizione sicura (o genera un nuovo secret se perdi la traccia di quello precedente).

Configurazione avanzata per Azure AD

Valuta la possibilità di utilizzare questa configurazione avanzata solo se vuoi configurare cluster con criteri di autorizzazione basati su gruppi di Azure AD in cui gli utenti dei cluster appartengono a più di 200 gruppi Azure AD. La configurazione avanzata per Azure AD supporta le seguenti piattaforme:

  • Cluster GKE on-premise (sia VMware che bare metal): da GKE Enterprise 1.14
  • Cluster Anthos on AWS: da GKE Enterprise 1.14 (Kubernetes versione 1.25 o successiva)
  • Cluster Anthos on Azure: da GKE Enterprise 1.14 (Kubernetes versione 1.25 o successive)
  • Cluster Anthos on AWS (generazione precedente): da GKE Enterprise 1.14

Prima di iniziare, assicurati che a ogni utente sia associato un indirizzo email configurato come identificatore in Azure AD. GKE Identity Service utilizza l'email dell'utente per rivendicare l'identità dell'utente e autenticare la richiesta.

Devi assicurarti che il client registrato nella sezione precedente disponga delle autorizzazioni delegate per ottenere informazioni su utenti e gruppi dall'API Microsoft Graph. Queste autorizzazioni consentono al plug-in del servizio GKE Identity di accedere agli endpoint dell'API Microsoft Graph da cui vengono recuperate le informazioni del gruppo. Senza questo passaggio, GKE Identity Service non può elencare i gruppi dell'utente e i criteri di autorizzazione RBAC basati sui gruppi non funzioneranno come previsto.

Per eseguire questo passaggio di configurazione, devi disporre delle autorizzazioni di amministratore globale o di amministratore dell'organizzazione.

  1. Accedi al portale Azure.
  2. Se hai accesso a più tenant, utilizza il filtro Directory + abbonamento nel menu in alto per selezionare il tenant che contiene la registrazione della tua app client.
  3. Seleziona Azure Active Directory - Registrazioni app, quindi seleziona la tua applicazione client.
  4. Seleziona Autorizzazioni API - Aggiungi un'autorizzazione - Microsoft Graph - Autorizzazioni delegate.
  5. Nella scheda Gruppo, seleziona Group.Read.All. Nella scheda Utente, seleziona User.Read.All.
  6. Fai clic su Aggiungi autorizzazioni per completare la procedura.
  7. Concedi il consenso per conto di tutti gli utenti facendo clic sul pulsante Concedi il consenso dell'amministratore per.... Per saperne di più sulla concessione del consenso dell'amministratore, consulta Scopri di più sulle autorizzazioni API e sul consenso dell'amministratore.

Condividi i dettagli del provider

Assicurati che l'amministratore del cluster disponga delle seguenti informazioni richieste per la configurazione del cluster:

  • L'URI dell'emittente del provider
  • Il client secret
  • L'ID client
  • L'URI di reindirizzamento e la porta specificati per gcloud CLI
  • Il campo del nome utente (rivendicazione) che il tuo provider utilizza per identificare gli utenti nei suoi token (il valore predefinito previsto per la configurazione dei cluster è sub)
  • Il campo del nome del gruppo (rivendicazione) che il tuo provider utilizza per restituire gli eventuali gruppi di sicurezza.
  • Eventuali ambiti o parametri aggiuntivi specifici per il provider, come descritto nella sezione precedente. Ad esempio, se il server di autorizzazione richiede il consenso per l'autenticazione con Microsoft Azure e Okta, l'amministratore del cluster deve specificare prompt=consent come parametro. Se hai configurato ADFS per fornire informazioni sul gruppo di sicurezza, il parametro aggiuntivo pertinente è resource=token-groups-claim (o qualsiasi altro parametro che hai scelto come identificatore di attendibilità della parte attendibile).
  • (Facoltativo) Se il tuo provider non utilizza un certificato firmato da un'autorità di certificazione pubblica (ad esempio se utilizzi certificati autofirmati), avrai bisogno di un certificato (o della catena di certificati) del provider di identità. Il certificato (o la catena di certificati) deve contenere almeno il certificato radice (sono accettate catene parziali, purché la catena sia contigua al certificato radice). Quando fornisci questo valore in ClientConfig, deve essere formattato come stringa codificata Base64. Per creare la stringa, concatena i certificati completi con codifica PEM in una singola stringa, quindi la codifica in base64.

Puoi visualizzare un elenco completo dei parametri di configurazione di GKE Identity Service in Configura i cluster.