Configura i provider OIDC per l'autenticazione ai cluster

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 l'autenticazione ai cluster Kubernetes che non sono su Google Cloud.

Registrare un'applicazione client con il provider

Durante il flusso di autenticazione per gli utenti, il cluster utilizza un ID client e un secret per connettersi al provider di identità. Puoi ottenere un ID client e un secret dal tuo provider di identità configurando un'applicazione client per Kubernetes. La procedura per configurare un'applicazione client dipende dal provider. Nella sezione successiva puoi trovare alcuni dettagli di registrazione specifici per i provider più diffusi.

Per gli URL di reindirizzamento, specifica i seguenti valori:

  • https://console.cloud.google.com/kubernetes/oidc è l'URL di reindirizzamento per la Google Cloud console.
  • 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 FQDN. Sostituisci APISERVER_URL con l'FQDN del server dell'API 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 secret che hai ottenuto nel passaggio di registrazione. Condividi questi dettagli con gli amministratori dei cluster che devono configurare i propri cluster.

Informazioni sulla configurazione del provider di identità

Questa sezione fornisce i passaggi per registrare un'applicazione client con Microsoft Active Directory Federation Services (AD FS) o con Microsoft Entra ID.

Microsoft AD FS

Utilizza una serie 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. AD FS identifica il cluster utilizzando questo ID client. Salva l'ID client per un secondo momento.

  5. Seleziona Genera un secret condiviso. Il meccanismo di autenticazione di Kubernetes utilizza questo secret per l'autenticazione al server AD FS. Salva il secret per un secondo momento.

(Facoltativo) Configurare i gruppi di sicurezza

  1. Nella gestione di AD FS, seleziona Attendibilità componente > Aggiungi una nuova attendibilità componente.

  2. Seleziona Riconosce le attestazioni e fai clic su Avvia.

  3. Seleziona Inserisci manualmente i dati relativi alla componente.

  4. Inserisci un nome visualizzato.

  5. Salta i due passaggi successivi.

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

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

  8. Fai clic su Fine.

Mappare gli attributi LDAP ai nomi delle attestazioni

  1. Nella gestione di AD FS, seleziona Attendibilità componente > Modifica policy di emissione delle attestazioni.

  2. Seleziona Invia attributi LDAP come attestazioni e fai clic su Avanti.

  3. In Nome regola attestazione, inserisci groups.

  4. In 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. In Tipo di attestazione in uscita, seleziona:

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

Registrare l'applicazione client Kubernetes con AD FS

Apri una finestra di 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 dell'attestazione che hai inserito in precedenza. Ricorda che l'identificatore suggerito era token-groups-claim.

Microsoft Entra ID

Per registrare un client OAuth con Microsoft Entra ID, completa i passaggi indicati nei seguenti link:

  1. Se non l'hai ancora fatto, configura un tenant Microsoft Entra.

  2. Registra un'applicazione in Microsoft Entra ID.

  3. Nel Centro amministratori Microsoft Entra, apri la pagina Registrazioni app e seleziona l'applicazione. Si apre la pagina di panoramica dell'applicazione.

  4. Crea il client secret:

    1. Nel menu di navigazione, fai clic su Certificati e secret.
    2. Fai clic sulla scheda Client secret.
    3. Fai clic su Nuovo secret client. Assegna un nome al secret e fai clic su Aggiungi.
    4. Salva il Valore del secret in una posizione sicura. Non potrai recuperarlo dopo aver chiuso o aggiornato la pagina.

    Per ulteriori informazioni, vedi Aggiungere e gestire le credenziali dell'applicazione in Microsoft Entra ID.

  5. Aggiungi gli URI di reindirizzamento:

    1. Nel menu di navigazione, fai clic su Autenticazione.
    2. Nella sezione Configurazioni della piattaforma, fai clic su Aggiungi una piattaforma. Si apre il riquadro Configura piattaforme.
    3. Fai clic su Web.
    4. Nel campo URI di reindirizzamento, inserisci http://localhost:PORT/callback per il flusso di accesso di gcloud CLI. Scegli una PORT maggiore di 1024.
    5. Fai clic su Configura.
    6. Fai clic su Aggiungi URI per aggiungere un altro URI.
    7. Inserisci https://console.cloud.google.com/kubernetes/oidc per il Google Cloud flusso di accesso alla console.
    8. Salva la configurazione.

    Per ulteriori informazioni, vedi Come aggiungere un URI di reindirizzamento all'applicazione.

La registrazione del client è 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 di panoramica dell'applicazione nel Centro amministratori Microsoft Entra.

  • ID client: l'ID client viene visualizzato come Application (client) ID nella pagina di panoramica dell'applicazione nel Centro amministratori Microsoft Entra.

  • Client secret: il valore del client secret che hai creato quando hai registrato l'applicazione client. Se non hai accesso a questo valore, genera un nuovo secret.

Configurazione avanzata per Microsoft Entra ID

Valuta la possibilità di utilizzare questa configurazione avanzata solo quando vuoi configurare cluster con policy di autorizzazione basate su gruppi di Microsoft Entra ID in cui gli utenti dei cluster appartengono a più di 200 gruppi di Microsoft Entra ID. La configurazione avanzata per Microsoft Entra ID supporta le seguenti piattaforme:

  • Google Distributed Cloud on-premise (VMware e bare metal): dalla versione 1.14
  • GKE su AWS: dalla versione 1.14 (versione Kubernetes 1.25 o successive)
  • GKE su Azure: dalla versione 1.14 (versione Kubernetes 1.25 o successive)

Prima di iniziare, assicurati che ogni utente abbia un indirizzo email associato configurato come identificatore in Microsoft Entra ID. Questo indirizzo email viene utilizzato per affermare l'identità dell'utente e autenticare la richiesta.

Devi assicurarti che il client che hai registrato nella sezione precedente abbia delegato le autorizzazioni per ottenere informazioni su utenti e gruppi dall'API Microsoft Graph. Queste autorizzazioni consentono al meccanismo di autenticazione di Kubernetes di accedere agli endpoint dell'API Microsoft Graph da cui vengono recuperate le informazioni sui gruppi. Senza questo passaggio, il cluster non può ottenere informazioni sui gruppi per l'utente, il che fa sì che le policy di autorizzazione RBAC basate sui gruppi non funzionino come previsto.

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

  1. Accedi al Centro amministratori Microsoft Entra.
  2. Seleziona il tenant Microsoft Entra che contiene l'applicazione client.
  3. Seleziona Registrazioni app e poi l'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 su Concedi il consenso amministratore per.... Per ulteriori informazioni, vedi Ulteriori informazioni sulle autorizzazioni API e sul consenso amministratore.

Condividere i dettagli del provider di identità

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

  • L'URI 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 (attestazione) utilizzato dal provider per identificare gli utenti nei relativi token (il valore predefinito presupposto durante la configurazione dei cluster è sub)
  • Il campo del nome del gruppo (attestazione) utilizzato dal provider per restituire i gruppi di sicurezza, se presenti.
  • Eventuali ambiti o parametri aggiuntivi specifici del provider, come descritto nella sezione precedente. Ad esempio, se il server di autorizzazione richiede il consenso per l'autenticazione con Microsoft Entra ID e Okta, l'amministratore del cluster deve specificare prompt=consent come parametro. Se hai configurato AD FS per fornire informazioni sui gruppi di sicurezza, il parametro aggiuntivo pertinente è resource=token-groups-claim (o qualsiasi altro identificatore di attendibilità componente scelto).
  • (Facoltativo) Se il 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 completi con codifica PEM in un'unica stringa e poi codificala in Base64.

Per ulteriori informazioni sui parametri di configurazione dei cluster, vedi Configurare i cluster.

Passaggi successivi