Configura i provider OIDC per GKE Identity Service

Questo documento è rivolto agli amministratori di piattaforma o a chiunque gestisca la configurazione delle identità nella tua organizzazione. Spiega come configurare il provider di identità OpenID Connect (OIDC) scelto per GKE Identity Service.

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 dal tuo provider di identità. Questo ID e secret vengono utilizzati dal servizio di identità GKE durante la connessione al provider nell'ambito del flusso di autenticazione per gli utenti. Per ottenerli, devi registrare il servizio di identità GKE con il tuo provider come applicazione client, seguendo la procedura standard per il provider scelto. Puoi trovare alcuni dettagli di registrazione specifici dei fornitori più diffusi nella sezione successiva.

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 mediante l'accesso FQDN. Sostituisci APISERVER-URL con il nome di dominio completo del server API Kubernetes del cluster. Ad esempio, se APISERVER-URL è https://apiserver.company.com, redirect_uri dovrebbe essere https://apiserver.company.com:11001/finish-login.

Salva l'ID client e il secret ottenuti nel passaggio di registrazione. Condividi questi dettagli con gli amministratori del cluster che devono configurare il servizio di identità GKE.

Informazioni di configurazione del provider di identità

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

Microsoft AD FS

Utilizza un insieme di procedure guidate di gestione di AD FS per configurare il server AD FS e il database degli utenti AD.

  1. Apri il riquadro di gestione di AD FS.

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

  3. Seleziona 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. Questo è il modo in cui il server AD FS identifica il servizio di identità GKE. Salva l'ID client per un secondo momento.

  5. Seleziona Genera un secret condiviso. GKE Identity Service utilizza questo secret per eseguire l'autenticazione sul server AD FS. Salva il secret per un secondo momento.

(Facoltativo) Configurazione dei gruppi di sicurezza

  1. Nella gestione di AD FS, seleziona Informazioni attendibili del componente > Aggiungi un nuovo trust del componente.

  2. Seleziona Rivendicazioni a conoscenza e fai clic su Avvia.

  3. Seleziona Inserisci manualmente i dati sul componente.

  4. Inserisci un nome visualizzato.

  5. Salta i prossimi due passaggi.

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

  7. In corrispondenza di Criterio di controllo dell'accesso, seleziona Consenti a tutti. Ciò significa che tutti gli utenti condividono le informazioni del proprio gruppo 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 Relying Party Trust > Modifica criterio di emissione delle attestazioni.

  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. Per Archivio attributi, seleziona Active Directory.

  5. Nella tabella, per Attributo LDAP, seleziona:

    • AD FS 5.0 e versioni successive: gruppi di token qualificati per nome di dominio
    • Versioni di AD FS precedenti alla 5.0: Gruppi di token - Nomi qualificati
  6. Per Tipo di attestazione in uscita, seleziona:

    • AD FS 5.0 e versioni successive: Group
    • Versioni di AD FS precedenti alla 5.0: groups
  7. Fai clic su Fine e poi su Applica.

Registrazione del servizio di identità GKE con AD FS

Apri una finestra PowerShell in modalità 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 che hai 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 i passaggi ai seguenti link:

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

  2. Registra un'applicazione con la piattaforma di identità Microsoft.

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

  4. Crea un client secret.

    1. Fai clic su 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 Aggiungi.

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

  5. Aggiungi URI di reindirizzamento.

    1. Torna alla pagina dell'applicazione.

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

    3. Se scegli Aggiungi una piattaforma, a destra verrà visualizzato il riquadro denominato Configura piattaforme.

    4. Scegli Web. In URI di reindirizzamento, inserisci http://localhost:PORT/callback per il flusso di accesso dell'interfaccia a riga di comando gcloud. Seleziona 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 è 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 sul portale Azure.

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

  • Client Secret: ti è stato fornito 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

Prendi in considerazione l'utilizzo di questa configurazione avanzata solo quando 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 su AWS: da GKE Enterprise 1.14 (Kubernetes versione 1.25 o successiva)
  • Cluster Anthos su Azure: da GKE Enterprise 1.14 (Kubernetes versione 1.25 o successiva)
  • 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 abbia delegato le autorizzazioni per ottenere informazioni su utenti e gruppi dall'API Microsoft Graph. Queste autorizzazioni consentono al plug-in del Servizio di identità GKE di accedere agli endpoint dell'API Microsoft Graph da cui vengono recuperate le informazioni del gruppo. Senza questo passaggio, il servizio di identità GKE 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 contenente la registrazione dell'app client.
  3. Seleziona Azure Active Directory - Registrazioni app, quindi seleziona l'applicazione client.
  4. Seleziona Autorizzazioni API - Aggiungi un'autorizzazione - Microsoft Graph - Autorizzazioni delegati.
  5. Nella scheda Group (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 amministratore per.... Per saperne di più sulla concessione del consenso amministrativo, consulta Ulteriori informazioni sulle autorizzazioni API e sul consenso dell'amministratore.

Condividi i dettagli del provider di identità

Condividi le seguenti informazioni sul provider con l'amministratore del cluster per la configurazione del cluster:

  • URI dell'emittente del provider
  • Il client secret
  • ID client
  • L'URI di reindirizzamento e la porta specificati per gcloud CLI
  • Il campo del nome utente (claim) utilizzato dal provider per identificare gli utenti nei suoi token (il valore predefinito presunto durante la configurazione dei cluster è sub)
  • Il campo del nome del gruppo (claim) utilizzato dal provider per restituire gli eventuali gruppi di sicurezza.
  • Eventuali ambiti o parametri aggiuntivi specifici del provider, come descritto nella sezione precedente. Ad esempio, se il tuo 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 in modo da fornire informazioni sul gruppo di sicurezza, il parametro aggiuntivo pertinente è resource=token-groups-claim (o qualsiasi altro valore che hai scelto come identificatore di attendibilità del componente).
  • (Facoltativo) Se il tuo provider non utilizza un certificato firmato da un'autorità di certificazione pubblica, ad esempio se usi certificati autofirmati, avrai bisogno di un certificato (o di una 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 in base64. Per creare la stringa, concatena i certificati completi con codifica PEM in una singola stringa e poi codificala in base64.

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

Passaggi successivi

L'amministratore del cluster può configurare GKE Identity Service per singoli cluster o un parco risorse.