Configura i provider OIDC per GKE Identity Service

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

Registra GKE Identity Service con il tuo provider

La configurazione di GKE Identity Service richiede un singolo ID client e un segreto del tuo provider di identità. Questo ID e questo secret vengono utilizzati da GKE Identity Service quando si connette 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ù comuni.

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

Salva l'ID client e il client secret ottenuti dal passaggio di registrazione. Condividi questi dettagli con gli amministratori del cluster che devono configurare GKE Identity Service.

Informazioni di configurazione del provider di identità

Questa sezione fornisce ulteriori informazioni specifiche del fornitore per la registrazione di GKE Identity Service. Se il tuo provider è elencato qui, registra GKE Identity Service con il tuo provider come applicazione client seguendo le istruzioni riportate di seguito.

Microsoft AD FS

Utilizza un insieme di procedure guidate di gestione 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. 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 assegnato un ID client. In questo modo il server AD FS identifica GKE Identity Service. Salva l'ID client per un utilizzo futuro.

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

(Facoltativo) Configurazione dei gruppi di sicurezza

  1. In Gestione AD FS, seleziona Attendibilità componente > Aggiungi una nuova attendibilità componente.

  2. Seleziona Riconoscimento delle rivendicazioni e fai clic su Avvia.

  3. Seleziona Inserisci manualmente i dati sul componente.

  4. Inserisci un nome visualizzato.

  5. Ignora i due passaggi successivi.

  6. Inserisci un identificatore di trust della relying party. Suggerimento: token-groups-claim.

  7. Per Norme di controllo dell'accesso, seleziona Consenti a tutti. Ciò significa che tutti gli utenti condividono le informazioni del gruppo di sicurezza con gcloud CLI e la consoleGoogle Cloud .

  8. Fai clic su Fine.

Mappare gli attributi LDAP ai nomi delle rivendicazioni

  1. In Gestione AD FS, seleziona Attendibilità componente > Modifica policy di emissione attestazioni.

  2. Seleziona Inviare attributi LDAP come attestazioni e fai clic su 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 versione 5.0 e successive: Token-Groups Qualified by Domain name
    • Versioni di AD FS precedenti alla 5.0: Token Groups - Qualified Names
  6. Per Tipo di attestazione in uscita, seleziona:

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

Registrazione di GKE Identity Service 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 richiesta che hai inserito in precedenza. Ricorda che l'identificatore suggerito era token-groups-claim.

Azure AD

Registrare un client OAuth con Azure

Per registrare un client OAuth con Azure, completa i passaggi descritti nei seguenti link:

  1. Se non l'hai ancora fatto, configura un tenant in Azure Active Directory.

  2. Registra un'applicazione con Microsoft identity Platform.

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

  4. Crea un client secret.

    1. Fai clic su Aggiungi un certificato o un secret nella sezione Elementi essenziali. Vengono visualizzati 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 recuperarlo dopo aver chiuso o aggiornato la pagina.

  5. Aggiungi URI di reindirizzamento.

    1. Torna alla pagina dell'applicazione.

    2. Seleziona Aggiungi un URI di reindirizzamento in Elementi essenziali. Viene visualizzata la pagina Autenticazione.

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

    4. Scegli Web. In URI di reindirizzamento, inserisci http://localhost:PORT/callback per il flusso di accesso gcloud CLI. Scegli un 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.

La registrazione del cliente è stata completata. Devi disporre delle 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 Applicazione del portale Azure.

  • ID client: l'ID client viene visualizzato come Application (client) ID nella pagina Applicazione del portale Azure.

  • Client Secret (Secret client): ti è stato fornito nell'ultimo passaggio. Non potrai recuperarlo se chiudi la pagina dopo la creazione del secret. Assicurati di salvare il valore in una posizione sicura (o genera un nuovo secret se perdi 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 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 (versione Kubernetes 1.25 o successive)
  • Cluster Anthos on Azure: da GKE Enterprise 1.14 (versione Kubernetes 1.25 o successive)
  • Cluster Anthos on AWS (generazione precedente): da GKE Enterprise 1.14

Prima di iniziare, assicurati che ogni utente abbia un indirizzo email associato configurato come identificatore in Azure AD. GKE Identity Service utilizza l'email dell'utente per confermare la sua identità 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 GKE Identity Service di accedere agli endpoint dell'API Microsoft Graph da cui vengono recuperate le informazioni sui gruppi. Senza questo passaggio, GKE Identity Service non può elencare i gruppi dell'utente e le norme di autorizzazione RBAC basate sui gruppi non funzioneranno come previsto.

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

  1. Accedi al portale di 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 API permissions - Add a permission - Microsoft Graph - Delegated permissions (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 amministratore per…. Per saperne di più su come concedere il consenso amministratore, consulta la sezione Ulteriori informazioni sulle autorizzazioni API e sul consenso amministratore.

Condividere i dettagli del provider di identità

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

  • L'URI emittente del fornitore
  • Il client secret
  • L'ID client
  • L'URI di reindirizzamento e la porta specificati per gcloud CLI
  • Il campo (rivendicazione) del nome utente utilizzato dal tuo provider per identificare gli utenti nei suoi token (il valore predefinito presunto durante la configurazione dei cluster è sub)
  • Il campo (attestazione) del nome del gruppo utilizzato dal provider per restituire i gruppi di sicurezza, se presenti.
  • Eventuali ambiti o parametri aggiuntivi specifici per il tuo fornitore, 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 sui gruppi di sicurezza, il parametro aggiuntivo pertinente è resource=token-groups-claim (o qualsiasi altro identificatore di trust della relying party che hai scelto).
  • (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 di una catena di certificati) del provider di identità. Il certificato (o la catena di certificati) deve contenere almeno il certificato radice (le catene parziali sono accettate, purché la catena sia contigua al certificato radice). Quando fornisci questo valore in ClientConfig, deve essere formattato come stringa con codifica Base64. Per creare la stringa, concatena i certificati con codifica PEM completi in un'unica 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 cluster singoli o per un parco risorse.