Autenticazione con OIDC e Google

Scopri come configurare i cluster Anthos su VMware (GKE On-Prem) per utilizzare OpenID Connect (OIDC) con Google come provider OpenID per l'autenticazione nei cluster utente. Questa pagina illustra la procedura in generale per aiutarti a comprendere come configurare Google come provider OpenID.

Per una panoramica del flusso di autenticazione dei cluster Anthos su VMware, vedi Autenticazione. Per scoprire come configurare OIDC con altri provider OpenID, consulta le risorse seguenti:

I cluster Anthos su VMware supportano OIDC come uno dei meccanismi di autenticazione per interagire con un server API Kubernetes del cluster utente. Con OIDC puoi gestire l'accesso ai cluster Kubernetes utilizzando le procedure standard nella tua organizzazione per creare, abilitare e disabilitare gli account utente.

Gli utenti possono autorizzare gli account in due modi:

  • Utilizza Google Cloud CLI per avviare il flusso OIDC e ottenere l'autorizzazione dell'utente tramite una pagina di consenso basata sul browser.

  • Utilizza Google Cloud Console per avviare il flusso di autenticazione OIDC.

Prima di iniziare

  • Questo argomento presuppone che tu abbia familiarità con i seguenti concetti di autenticazione e OpenID:

  • Il provider OpenID di Google non supporta i gruppi. Quando utilizzi il controllo dell'accesso basato sui ruoli (RBAC) per Kubernetes per concedere i ruoli agli utenti autenticati, devi concedere i ruoli a ogni singolo utente, non a un gruppo.

  • I sistemi headless non sono supportati. Un flusso di autenticazione basato su browser viene utilizzato per chiederti il consenso e autorizzare il tuo account utente.

  • Per autenticarti tramite la console Google Cloud, ogni cluster che vuoi configurare per l'autenticazione OIDC deve essere registrato con Google Cloud.

Utenti tipo

Questo argomento si riferisce a tre utenti tipo:

  • Amministratore dell'organizzazione. Questa persona sceglie un provider OpenID e registra le applicazioni client con il provider.

  • Amministratore del cluster. Questa persona crea uno o più cluster utente e crea file di configurazione di autenticazione per gli sviluppatori che utilizzano i cluster.

  • Sviluppatore. Questa persona esegue carichi di lavoro su uno o più cluster e utilizza OIDC per l'autenticazione.

Creare URL di reindirizzamento

Questa sezione è rivolta agli amministratori dell'organizzazione.

Devi creare URL di reindirizzamento sia per l'interfaccia a riga di comando gcloud che per Google Cloud Console, che il provider OpenID può utilizzare per restituire i token ID.

URL di reindirizzamento dell'interfaccia a riga di comando gcloud

Google Cloud CLI è installato su ogni macchina locale dello sviluppatore e include l'interfaccia a riga di comando gcloud. Puoi specificare un numero di porta superiore a 1024 da utilizzare per l'URL di reindirizzamento:

http://localhost:PORT/callback

Sostituisci PORT con il numero della tua porta.

Quando configuri il provider OpenID di Google, specifica http://localhost:PORT/callback come uno degli URL di reindirizzamento.

URL di reindirizzamento della console Google Cloud

L'URL di reindirizzamento per la console Google Cloud è:

https://console.cloud.google.com/kubernetes/oidc

Quando configuri il provider OpenID di Google, specifica https://console.cloud.google.com/kubernetes/oidc come uno degli URL di reindirizzamento.

In questa sezione configurerai la schermata per il consenso OAuth di Google. Quando uno sviluppatore della tua organizzazione avvia l'autenticazione in un cluster utente, verrà indirizzato a questa schermata per il consenso. A questo punto, deve dimostrare la propria identità a Google e autorizzare Google a creare un token che fornisca informazioni identificative al client OAuth. Nel contesto di questo argomento, il client OAuth è l'interfaccia a riga di comando gcloud o la console Google Cloud.

  1. Vai alla pagina Schermata consenso OAuth in Google Cloud Console.

    Configurare la schermata per il consenso OAuth

  2. Seleziona Interno e fai clic su Crea.

  3. In Tipo di applicazione, seleziona Interno.

  4. In Nome applicazione, inserisci un nome a tua scelta. Suggerimento: GKE on-prem.

  5. In Domini autorizzati, aggiungi google.com.

  6. Compila i campi aggiuntivi in base alle necessità.

  7. Fai clic su Salva.

Registrazione di un'applicazione client con Google

In questa sezione registri i cluster Anthos su VMware con Google, in modo che Google possa agire come provider OpenID per gli sviluppatori nella tua organizzazione. Nell'ambito della registrazione devi fornire i due URL di reindirizzamento che hai creato in precedenza.

  1. Vai alla pagina Credenziali in Google Cloud Console.

    Vai alla pagina Credenziali

  2. Fai clic su Crea credenziali e seleziona ID client OAuth.

  3. Per Tipo di applicazione, seleziona Applicazione web.

  4. In Nome, inserisci un nome a tua scelta.

  5. In URI di reindirizzamento autorizzati, aggiungi i due URL di reindirizzamento. Ricorda che hai creato un URL di reindirizzamento per l'interfaccia a riga di comando gcloud e un URL di reindirizzamento per Google Cloud Console.

  6. Fai clic su Crea.

  7. Ti vengono assegnati un ID client e un client secret. Salvale per utilizzarle in un secondo momento.

Configurazione di oidc sui cluster Anthos sui cluster VMware

Questa sezione è rivolta agli amministratori del cluster.

Per configurare l'autenticazione OIDC, devi configurare il CRD ClientConfig del cluster utente con i dettagli di autenticazione per un cluster. Per fare ciò, modifica l'oggetto predefinito KRM di tipo clientconfig nello spazio dei nomi kube-public.

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig default

I dettagli del CRD di ClientConfig vengono utilizzati per configurare OIDC sia per la console Google Cloud che per il plug-in di autenticazione per Anthos. La configurazione include le seguenti informazioni OIDC:

authentication:
  - name: NAME_STRING
    oidc:
      certificateAuthorityData: CERTIFICATE_STRING
      clientID: CLIENT_ID
      clientSecret: CLIENT_SECRET
      cloudConsoleRedirectURI: "http://console.cloud.google.com/kubernetes/oidc"
      deployCloudConsoleProxy: PROXY_BOOLEAN
      extraParams: EXTRA_PARAMS
      groupsClaim: GROUPS_CLAIM
      groupPrefix: GROUP_PREFIX
      issuerURI: ISSUER_URI
      kubectlRedirectURI: KUBECTL_REDIRECT_URI
      scopes: SCOPES
      userClaim: USER_CLAIM
      userPrefix: USER_PREFIX
    proxy: PROXY_URL

La seguente tabella descrive come compilare i campi dell'oggetto oidc CRD clientConfig. Per informazioni generali sull'oggetto oidcCRP ClientConfig, consulta Configurazione di OIDC sui cluster Anthos su VMware.

Campo Obbligatoria Descrizione Formato
name Il nome della configurazione OIDC da creare. Stringa
CertificateAuthorityData No

Un certificato PEM con codifica base64 per il provider OIDC. Per creare la stringa codifica il certificato, incluse le intestazioni, in base64. Includi la stringa risultante in certificateAuthorityData come riga singola.

Esempio:
certificateAuthorityData: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==

Questo valore è facoltativo nelle versioni 1.4 e 1.5. E questo valore è facoltativo nella versione 1.6.1 e successiva. Tuttavia, questo valore è obbligatorio nella versione 1.6.0. Questo è di particolare importanza per gli upgrade da 1.5 a 1.6.0. Per ulteriori informazioni, consulta i problemi noti nelle note di rilascio 1.6.0.

Stringa
ID cliente ID dell'applicazione client che invia le richieste di autenticazione al provider OpenID. Sia l'interfaccia a riga di comando gcloud sia la console Google Cloud utilizzano questo ID. Questo ID ti è stato fornito quando hai registrato la tua applicazione client con Google. Stringa
clientSecret No Secret per l'applicazione client. Sia l'interfaccia a riga di comando gcloud che Google Cloud Console utilizzano questo secret. Questo ID ti è stato fornito quando hai registrato la tua applicazione client con Google. Stringa
parametri aggiuntivi No Imposta su "prompt=consent,access_type=offline"..

Elenco delimitato da virgole
Rivendicazione di gruppi No Lascia vuoto. Stringa
Prefisso gruppo No Lascia vuoto. Stringa
emittenteURI Imposta questo valore su "https://accounts.google.com". Le applicazioni client, come l'interfaccia a riga di comando gcloud e Google Cloud Console, inviano le richieste di autorizzazione a questo URL. Il server API di Kubernetes utilizza questo URL per scoprire le chiavi pubbliche per la verifica dei token. Stringa URL
kubectlReindirizzamentoURI L'URL di reindirizzamento che hai configurato in precedenza per l'interfaccia a riga di comando gcloud. Stringa URL
ambiti Ambiti aggiuntivi da inviare al provider OpenID. Imposta su "email". Elenco delimitato da virgole
RivendicazioneUtente No Imposta su "email". Stringa
Prefisso utente No Prefisso anteposto alle attestazioni dei nomi utente per evitare conflitti con i nomi esistenti. Se non specifichi questo campo e username è un valore diverso da email, il valore predefinito del prefisso è issuerurl#. Puoi utilizzare il valore - per disattivare tutti i prefissi. Stringa
proxy No Server proxy da utilizzare per il metodo auth, se applicabile. Ad esempio: http://user:password@10.10.10.10:8888. Stringa

Creazione di un criterio RBAC per il cluster utente

Questa sezione è rivolta agli amministratori del cluster.

Dopo aver creato un cluster, utilizza il controllo dell'accesso basato sui ruoli (RBAC) per concedere l'accesso agli utenti del cluster autenticati. Per concedere l'accesso alle risorse in un determinato spazio dei nomi, crea un ruolo e un RoleBinding. Per concedere l'accesso alle risorse nell'intero cluster, crea un ClusterRole e un ClusterRoleBinding

Quando utilizzi Google come provider OpenID, devi concedere l'accesso ai singoli utenti. ma non di concedere l'accesso a gruppi. Questo perché il token restituito dal provider OpenID di Google non contiene informazioni sui gruppi a cui appartiene un singolo utente.

Ad esempio, supponiamo che jane@example.com sia in grado di visualizzare tutti gli oggetti Secret nel cluster.

Ecco un manifest per un ClusterRole denominato secret-viewer. A una persona a cui è stato assegnato questo ruolo è possibile ottenere, guardare ed elencare qualsiasi secret nel cluster.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: secret-viewer
rules:
- apiGroups: [""]
  # The resource type for which access is granted
  resources: ["secrets"]
  # The permissions granted by the ClusterRole
  verbs: ["get", "watch", "list"]

Ecco un manifest per un ClusterRoleBinding denominato people-who-view-secrets. L'associazione concede il ruolo secret-viewer a un utente chiamato jane@example.com.

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: people-who-view-secrets
subjects:
- kind: User
  name: jane@example.com
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: secret-viewer
  apiGroup: rbac.authorization.k8s.io

Per creare il ClusterRole, salva il manifest in un file denominato secret-viewer-cluster-role.yaml e inserisci questo comando:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] apply -f secret-viewer-cluster-role.yaml

dove [USER_CLUSTR_KUBECONFIG] è il file kubeconfig per il cluster utente.

Per creare l'oggetto ClusterRoleBinding, salva il manifest in un file denominato secret-viewer-cluster-role-binding.yaml e inserisci questo comando:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] apply -f secret-viewer-cluster-role-binding.yaml

Creazione e distribuzione del file di configurazione dell'autenticazione

Questa sezione è rivolta agli amministratori del cluster.

Dopo aver creato un cluster utente, crei un file di configurazione di autenticazione per il cluster. Puoi configurare più cluster in un unico file di configurazione dell'autenticazione. Devi fornire ogni file di configurazione di autenticazione agli utenti che vogliono eseguire l'autenticazione con ciascuno di questi cluster.

Creare il file di configurazione dell'autenticazione

Per creare il file di configurazione dell'autenticazione nella directory corrente, esegui il comando gkectl seguente:

gkectl create-login-config --kubeconfig USER_CLUSTER_KUBECONFIG

Sostituisci USER_CLUSTER_KUBECONFIG con il percorso del file kubeconfig del cluster utente. Quando hai eseguito gkectl create cluster per creare il tuo cluster utente, è stato creato il tuo file kubeconfig.

Risultato: il file di configurazione dell'autenticazione, denominato kubectl-anthos-config.yaml, viene creato nella directory corrente.

Aggiunta di più cluster al file di configurazione dell'autenticazione

Puoi archiviare i dettagli della configurazione di autenticazione per più cluster all'interno di un singolo file di configurazione di autenticazione.

Puoi utilizzare il comando seguente per unire ulteriori dettagli di autenticazione del cluster utente in un file di configurazione di autenticazione esistente. Dato che è già presente un file di configurazione dell'autenticazione, puoi unire o combinare ulteriori dettagli sull'autenticazione del cluster utente:

  • Unisci i dettagli aggiuntivi dell'autenticazione del cluster utente nel file di configurazione dell'autenticazione esistente.
  • Combina i dettagli aggiuntivi di autenticazione del cluster utente in un nuovo file.

Ad esempio, potresti dover gestire sia i file di configurazione dell'autenticazione anthos-config-1cluster.yaml che anthos-config-3clusters.yaml per soddisfare le esigenze di accesso dei vari gruppi di utenti dell'organizzazione.

Per aggiungere altri cluster utente al file di configurazione dell'autenticazione esistente:

  1. Assicurati che ogni cluster abbia un nome univoco. Se i tuoi cluster hanno gli stessi nomi, non puoi combinarli nello stesso file di configurazione di autenticazione. Tieni presente che, una volta creato, un cluster non può essere rinominato.

  2. Esegui il comando gkectl seguente per unire o combinare i dettagli di configurazione:

    gkectl create-login-config --kubeconfig USER_CLUSTER_KUBECONFIG \
    --merge-from IN_AUTH_CONFIG_FILE --output OUT_AUTH_CONFIG_FILE

    Sostituisci quanto segue:

    • USER_CLUSTER_KUBECONFIG specifica il file kubeconfig del cluster utente che vuoi aggiungere.

    • IN_AUTH_CONFIG_FILE specifica il percorso del file di configurazione dell'autenticazione esistente che vuoi unire alle informazioni aggiuntive sul cluster.

    • OUT_AUTH_CONFIG_FILE specifica il percorso del file in cui vuoi archiviare la configurazione di autenticazione unita:

      • Specifica lo stesso file di IN_AUTH_CONFIG_FILE per unire le informazioni aggiuntive sul cluster in tale file esistente.
      • Specifica un nuovo percorso e un nuovo nome file per combinare i dettagli di configurazione dell'autenticazione in un nuovo file.

Distribuzione del file di configurazione dell'autenticazione

Per consentire agli utenti di eseguire l'autenticazione nei cluster utente, devi fornire loro l'accesso a uno o più file di configurazione di autenticazione che hai creato. Tieni presente che i passaggi seguenti utilizzano il nome file predefinito e la posizione prevista dall'interfaccia a riga di comando gcloud. Per informazioni sull'utilizzo di nomi di file e posizioni alternativi, consulta Configurazione personalizzata.

Valuta se distribuire i file di configurazione dell'autenticazione:

  • Ospitare il file su un URL accessibile. Se includi il flag --login-config nel comando gcloud anthos auth login, l'interfaccia a riga di comando gcloud ottiene il file di configurazione di autenticazione da quella posizione.

    Ti consigliamo di ospitare il file su un host sicuro. Per ulteriori informazioni sull'utilizzo dei certificati PEM per un accesso HTTPS sicuro, consulta il flag --login-config-cert dell'interfaccia a riga di comando gcloud.

  • Fornendo manualmente il file a ogni utente. Dopo che gli utenti hanno scaricato il file, devi indicare loro come archiviare il file nella posizione predefinita e con il nome file predefinito previsto dall'interfaccia a riga di comando gcloud.

    Ad esempio, gli utenti possono eseguire i seguenti comandi per archiviare il file di configurazione dell'autenticazione con il nome file kubectl-anthos-config.yaml predefinito e nella posizione predefinita:

    Linux

    mkdir -p  $HOME/.config/google/anthos/
    cp AUTH_CONFIG_FILE $HOME/.config/google/anthos/kubectl-anthos-config.yaml

    dove AUTH_CONFIG_FILE è il nome del tuo file di configurazione dell'autenticazione. Ad esempio: kubectl-anthos-config.yaml.

    macOS

    mkdir -p  $HOME/Library/Preferences/google/anthos/
    cp AUTH_CONFIG_FILE $HOME/Library/Preferences/google/anthos/kubectl-anthos-config.yaml

    dove AUTH_CONFIG_FILE è il nome del tuo file di configurazione dell'autenticazione. Ad esempio: kubectl-anthos-config.yaml.

    Windows

    md "%APPDATA%\google\anthos"
    copy AUTH_CONFIG_FILE "%APPDATA%\google\anthos\kubectl-anthos-config.yaml"

    dove AUTH_CONFIG_FILE è il nome del tuo file di configurazione dell'autenticazione. Ad esempio: kubectl-anthos-config.yaml.

  • Utilizzo degli strumenti interni per il push del file di configurazione di autenticazione su ogni computer dell'utente. Ad esempio, puoi utilizzare gli strumenti per eseguire il push dei file utilizzando il nome file kubectl-anthos-config.yaml predefinito nelle posizioni predefinite sulla macchina di ogni utente:

    Linux

    $HOME/.config/google/anthos/kubectl-anthos-config.yaml

    macOS

    $HOME/Library/Preferences/google/anthos/kubectl-anthos-config.yaml

    Windows

    %APPDATA%\google\anthos\kubectl-anthos-config.yaml

Configurazione personalizzata

L'interfaccia a riga di comando gcloud prevede che il file di configurazione di autenticazione venga archiviato nella posizione predefinita e con il nome file predefinito kubectl-anthos-config.yaml, come indicato nella sezione precedente. Tuttavia, hai la possibilità di rinominare o archiviare il file di configurazione dell'autenticazione in una posizione alternativa. Se il nome e la posizione del file sono diversi da quelli predefiniti, devi aggiungere il flag --login-config a ogni comando che esegui durante l'autenticazione con il cluster. Il flag di comando aggiuntivo passa nel percorso e nel nome file personalizzati. Per scoprire di più sul flag di comando, consulta la pagina relativa all'autenticazione tramite l'interfaccia a riga di comando gcloud.

Installazione dell'interfaccia a riga di comando gcloud

Questa sezione è rivolta sia agli amministratori e agli sviluppatori del cluster.

Ogni sviluppatore o utente che deve eseguire l'autenticazione con un cluster deve installare Google Cloud CLI sulla propria macchina. I comandi di autenticazione Anthos sono stati integrati nell'interfaccia a riga di comando gcloud come anthos-authcomponente.

Rimozione di plug-in precedenti

Devi disinstallare il plug-in precedente per poter utilizzare il componente anthos-auth dell'interfaccia a riga di comando gcloud. Puoi controllare se sul tuo computer è presente uno dei plug-in precedenti basati su kubectl eseguendo il comando seguente:

kubectl anthos version

  • Se il comando risponde con Error: unknown command "anthos" for "kubectl", non è stato trovato alcun plug-in e puoi passare alla sezione successiva.

  • Se è stata trovata una versione 1.0beta del plug-in, devi individuarlo ed eliminarlo. Esegui questo comando per elencare la località, quindi utilizza la località per rimuovere il programma binario dalla macchina:

    kubectl plugin list

Installazione dell'interfaccia a riga di comando gcloud e dell'interfaccia a riga di comando gcloud

Per installare l'interfaccia a riga di comando gcloud, devi prima installare l'interfaccia a riga di comando gcloud:

  1. Installa l'interfaccia a riga di comando gcloud, ma ignora il comando gcloud init.

  2. Per installare il componente anthos-auth, esegui questi comandi:

    gcloud components update
    gcloud components install anthos-auth
  3. Verifica che l'interfaccia a riga di comando gcloud sia stata installata correttamente eseguendo uno dei comandi seguenti:

    gcloud anthos auth
    gcloud anthos auth login

    Risultato: ogni comando deve rispondere con i dettagli relativi agli argomenti richiesti e alle opzioni disponibili.

Ottenere il file di configurazione dell'autenticazione

Questa sezione è rivolta agli sviluppatori.

Il tuo amministratore è responsabile della creazione del tuo file di configurazione di autenticazione e, quindi, di fornirlo. Per maggiori dettagli, consulta la sezione Distribuzione del file di configurazione dell'autenticazione.

Per impostazione predefinita, l'interfaccia a riga di comando gcloud utilizza un nome file e una posizione di archiviazione predefiniti per il tuo file di configurazione di autenticazione. Se ti è stato fornito manualmente il file e devi salvarlo sulla macchina, utilizza le impostazioni predefinite per semplificare i comandi di autenticazione gcloud.

Utilizza i comandi seguenti per copiare il file di configurazione dell'autenticazione nella posizione predefinita:

Linux

mkdir -p  $HOME/.config/google/anthos/
cp AUTH_CONFIG_FILE $HOME/.config/google/anthos/kubectl-anthos-config.yaml

dove AUTH_CONFIG_FILE è il nome del tuo file di configurazione dell'autenticazione. Ad esempio: kubectl-anthos-config.yaml.

macOS

mkdir -p  $HOME/Library/Preferences/google/anthos/
cp AUTH_CONFIG_FILE $HOME/Library/Preferences/google/anthos/kubectl-anthos-config.yaml

dove AUTH_CONFIG_FILE è il nome del tuo file di configurazione dell'autenticazione. Ad esempio: kubectl-anthos-config.yaml.

Windows

md "%APPDATA%\google\anthos"
copy AUTH_CONFIG_FILE "%APPDATA%\google\anthos\kubectl-anthos-config.yaml"

dove AUTH_CONFIG_FILE è il nome del tuo file di configurazione dell'autenticazione. Ad esempio: kubectl-anthos-config.yaml.

Se scegli di utilizzare un nome file o una posizione diversa, puoi includere il flag --login-config in ciascuna delle tue richieste di autenticazione. Vedi la sezione seguente per i dettagli sull'utilizzo del comando gcloud anthos auth login.

Autenticazione con i cluster utente

Questa sezione è rivolta agli sviluppatori.

Ora che l'interfaccia a riga di comando gcloud è installata sulla tua macchina e il file di configurazione dell'autenticazione ti è stato fornito dall'amministratore, puoi utilizzare l'interfaccia a riga di comando gcloud o la console Google Cloud per eseguire l'autenticazione con i cluster.

Autenticazione mediante l'interfaccia a riga di comando gcloud

Esegui gcloud comandi per eseguire l'autenticazione con i cluster:

  1. Esegui il comando gcloud anthos auth login per avviare il flusso di autenticazione:

    gcloud anthos auth login \
     --cluster CLUSTER_NAME \
     --user USER_NAME \
     --login-config AUTH_CONFIG_FILE_PATH \
     --login-config-cert CA_CERT_PEM_FILE \
     --kubeconfig USER_CLUSTER_KUBECONFIG

    dove:

    • CLUSTER_NAME (facoltativo) specifica il nome del cluster utente. Se questo flag viene omesso, ti verrà chiesto di scegliere tra i cluster utente specificati nel file di configurazione di autenticazione.

    • USER_NAME (facoltativo) specifica il nome utente per le credenziali memorizzate nel file kubeconfig. Il valore predefinito è CLUSTER_NAME-anthos-default-user.

    • AUTH_CONFIG_FILE_PATH (facoltativo) specifica il percorso o l'URL personalizzato in cui viene archiviato o ospitato il file di configurazione dell'autenticazione. Puoi omettere questo parametro se il file si trova nella posizione predefinita. Esempio: --login-config /path/to/custom/authentication-config.yaml

    • CA_CERT_PEM_FILE (facoltativo) specifica il percorso di un file del certificato PEM dalla tua CA. Se il file di configurazione dell'autenticazione è ospitato in modo sicuro, puoi utilizzare una connessione HTTPS per accedere al file. Esempio: --login-config-cert my-cert.pem

    • USER_CLUSTER_KUBECONFIG (facoltativo) specifica il percorso personalizzato per il file kubeconfig del tuo cluster utente. I token ID OIDC restituiti dal tuo provider OpenID sono memorizzati nel file kubeconfig.

      Utilizza questo flag se il tuo file kubeconfig si trova in una posizione diversa da predefinita. Se questo flag viene omesso, viene creato un nuovo file kubeconfig nella località predefinita. Esempio: --kubeconfig /path/to/custom.kubeconfig

    Esempi:

    • Esegui l'autenticazione in un cluster specifico:

      gcloud anthos auth login --cluster my-production-cluster
      
    • Utilizza un prompt per selezionare il cluster con cui eseguire l'autenticazione:

      gcloud anthos auth login
      

      Risultato:

      Please use the --cluster flag to specify a cluster from the list below:
      Source: $HOME/.config/google/anthos/kubectl-anthos-config.yaml
      1. Cluster: test-cluster ServerIP: https://192.168.0.1:6443
      2. Cluster: test-cluster-2 ServerIP: https://192.168.0.2:6443
      3. Cluster: my-production-cluster ServerIP: https://192.168.0.3:6443
      
    • Utilizzare un file di configurazione dell'autenticazione ospitata:

      gcloud anthos auth login \
       --cluster my-production-cluster \
       --login-config HTTPS://my-secure-server/kubectl-anthos-config.yaml \
       --login-config-cert my-cert.pem
      
  2. Inserisci le credenziali nella schermata di consenso basata sul browser che si apre.

  3. Verifica che l'autenticazione sia riuscita eseguendo uno dei comandi kubectl per recuperare i dettagli del cluster. Ad esempio:

    kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG

Risultato: il tuo file kubeconfig ora contiene un token ID che i comandi kubectl verranno utilizzati per l'autenticazione con il server API Kubernetes sul tuo cluster utente.

Utilizzo di SSH per l'autenticazione da una macchina remota

Supponiamo di voler accedere tramite SSH a una macchina remota e di autenticarti a un cluster utente da una macchina remota. Per farlo, il file di configurazione di autenticazione deve trovarsi sul computer remoto e devi essere in grado di contattare il provider Open ID dalla tua macchina locale.

Sulla macchina locale, esegui il comando seguente:

ssh USER_NAME@REMOTE_MACHINE -L LOCAL_PORT:localhost:REMOTE_PORT

dove:

  • USER_NAME e REMOTE_MACHINE sono i valori standard utilizzati per accedere con SSH.

  • LOCAL_PORT è una porta aperta di tua scelta sulla macchina locale che userai per accedere alla macchina remota.

  • REMOTE_PORT è la porta configurata per l'URL di reindirizzamento OIDC. Puoi trovarlo nel campo kubectlRedirectURI del file di configurazione dell'autenticazione.

Nella shell SSH, esegui il comando seguente per avviare l'autenticazione:

gcloud anthos auth login --login-config AUTH_CONFIG_FILE

dove AUTH_CONFIG_FILE è il percorso del file di configurazione di autenticazione sulla macchina remota.

Sul computer locale, in un browser, vai alla pagina http://localhost:LOCAL_PORT/login e completa il flusso di accesso OIDC.

Ora il file kubeconfig sul tuo computer remoto dispone del token necessario per accedere al cluster utente.

Nella shell SSH, verifica di avere accesso al cluster utente:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes

Autenticazione tramite Google Cloud Console

Avvia il flusso di autenticazione dalla pagina Cluster Kubernetes in Google Cloud Console:

  1. Apri Google Cloud Console:

    Visita la pagina Cluster Kubernetes

  2. Individua i cluster Cluster Anthos su VMware nell'elenco e fai clic su Accedi.

  3. Seleziona Autentica con il provider di identità configurato per il cluster, quindi fai clic su ACCEDI.

    Si aprirà il tuo provider di identità, dove potresti dover accedere o dare il tuo consenso alla console Google Cloud che accede al tuo account. Quindi verrai reindirizzato alla pagina Cluster Kubernetes in Google Cloud Console.

Risoluzione dei problemi di configurazione OIDC

Per risolvere i problemi OIDC, consulta i seguenti comportamenti ed errori:

Configurazione non valida
Se Google Cloud Console non riesce a leggere la configurazione OIDC dal cluster, il pulsante ACCESSO verrà disabilitato.
Configurazione del provider non valida
Se la configurazione del tuo provider di identità non è valida, verrà visualizzata una schermata di errore del provider di identità dopo aver fatto clic su ACCESSO. Segui le istruzioni specifiche del provider per configurare correttamente il provider o il cluster.
Autorizzazioni non valide
Se completi il flusso di autenticazione, ma continui a non vedere i dettagli del cluster, assicurati di aver concesso le autorizzazioni RBAC corrette all'account che hai utilizzato con OIDC. Tieni presente che questo potrebbe essere un account diverso da quello che utilizzi per accedere a Google Cloud Console.
Error: missing 'RefreshToken' field in 'OAuth2Token' in credentials struct
Potresti visualizzare questo errore se il server di autorizzazione richiede il consenso, ma il parametro di autenticazione richiesto non è stato fornito. Fornisci il parametro prompt=consent ai cluster Anthos sul file di configurazione VMware sui file di configurazione oidc: extraparams e rigenera il file di autenticazione client con il flag --extra-params prompt=consent.

Passaggi successivi