Questa pagina è dedicata agli operatori dell'infrastruttura.
In questa pagina viene spiegato come abilitare l'autenticazione in Anthos Management Center tramite il tuo provider OpenID Connect (provider OIDC). OIDC è un livello di autenticazione, basato su OAuth 2.0, che specifica un'API RESTful HTTP e utilizza JSON come formato dati.
OIDC ti consente di utilizzare il tuo provider di identità esistente per gestire l'autenticazione di utenti e gruppi. Con OIDC puoi gestire l'accesso a un cluster utilizzando le procedure standard nella tua organizzazione per creare, abilitare e disabilitare gli account.
Prima di iniziare
Prima di configurare l'OIDC, devi disporre di:
- Il nome di dominio utilizzato per accedere al Centro di gestione, fornito dall'operatore dell'infrastruttura, ad esempio
anthos.example.com
. - Un provider OIDC come Microsoft Active Directory Federation Services (ADFS), SSO Google o Keycloak. Sia il cluster che il browser devono essere in grado di connettersi al provider OIDC. Il provider OIDC non deve connettersi di nuovo al cluster direttamente. Se non hai un provider OIDC, consulta la sezione Autenticarsi con Keycloak per installarne uno. Keycloak è solo a scopo dimostrativo e non è consigliato per un ambiente di produzione.
Crea profili di identità
I profili di identità contengono la configurazione necessaria per utilizzare un provider di identità per l'autenticazione. Per creare un profilo di identità:
Nella console di gestione, apri il menu Identità e accesso.
Nella scheda Identity, fai clic su Set Anthos Identity Service (OIDC).
Assegna un nome semplice al profilo nel campo Nome del profilo. Si tratta del nome a cui fa riferimento il profilo.
Inserisci l'URL del provider OIDC, il Client ID e il client secret del tuo provider OIDC.
Imposta il campo Rivendicazione nome utente. La rivendicazione con nome utente è la rivendicazione nel token OIDC in cui è presente il nome utente. Ad esempio, se la dichiarazione del nome utente è
email
, gli utenti sono identificati dal campo relativo all'utente nel token OIDC.Quando imposti questa rivendicazione, assicurati che la rivendicazione esista negli ambiti richiesti.
Imposta il campo Prefisso nome utente. Il prefisso del nome utente viene utilizzato per distinguere gli utenti da provider di identità diversi. Quando si assegnano le autorizzazioni RBAC agli utenti, è necessario includere anche il prefisso utente.
Ad esempio, se la rivendicazione del nome utente è
email
e il prefisso utente èprefix-
, gli utenti vengono identificati comeprefix-sally@example.com
. L'utente èsally@example.com
e il prefissoprefix-
ha come prefisso l'utente per distinguere i diversi provider di identità.Imposta il campo Rivendicazione di gruppo. In Anthos, in esecuzione in modalità disconnessa, il valore predefinito è
groups
. Per ulteriori informazioni sui gruppi di associazioni ai ruoli, consulta la sezione Associazioni di ruoli.Imposta il campo Prefisso del gruppo. Il prefisso del gruppo viene utilizzato per distinguere tra gruppi di provider di identità diversi. Quando assegni le autorizzazioni RBAC ai gruppi, devi includere anche il prefisso del gruppo.
Ad esempio, se la rivendicazione di gruppo è
groups
e il prefisso del gruppo ègroupprefix-
, i gruppi saranno identificati comegroupprefix-group
. Il gruppo ègroup
ed il prefissogroupprefix-
è preceduto dal gruppo. Ti consigliamo di inserire un separatore alla fine del prefisso come descritto nell'impostazione del prefisso del nome utente nel passaggio 6.(Facoltativo) Imposta il campo Ambiti se gli ambiti non sono
openid email profile
.Gli ambiti sono gli identificatori utilizzati per specificare i privilegi di accesso da richiedere nel token ID:
- Il campo
openid
è obbligatorio per OIDC. profile
include le rivendicazioniprofile
predefinite dell'utente.email
include generalmente le rivendicazioniemail
eemail_verified
.
- Il campo
Se il provider OIDC (come Google SSO) richiede parametri aggiuntivi, imposta il campo Parametri aggiuntivi.
Ad esempio, il campo Parametri aggiuntivi può essere impostato su
prompt=consent,access_type=offline
per visualizzare ogni volta una schermata di consenso prima di richiedere l'autorizzazione degli ambiti di accesso.Se la connessione HTTPS alla pagina
/.well-known/openid-configuration
o alla pagina JWKS del tuo provider OIDC è protetta da un certificato non attendibile (ad esempio un certificato autofirmato), devi compilare il campo Certificato OIDC con il certificato HTTPS utilizzato dal tuo provider OIDC.Codifica il certificato PEM con codifica per il provider OIDC in
base64
. Per creare la stringa codifica il certificato, incluse le intestazioni, inbase64
. Includi la stringa risultante come una singola riga.Esempio:
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tC...k1JSUN2RENDQWFT==
Per un esempio di impostazione di questo campo, consulta la sezione Autenticazione con Keycloak.
Fai clic su Submit (Invia) e torna alla scheda Identity and Access.
Registra l'URL di callback con il provider OIDC.
Crea altri profili di identità facendo clic su Add (Aggiungi) nella scheda Identity Profile (Profilo di identità).
Applica profili di identità al cluster di amministrazione
I profili di identità devono essere applicati ai cluster dopo la loro creazione.
Nella scheda Identity Profile (Profilo di identità), fai clic su Apply to clusters (Applica ai cluster).
Fai clic sulla scheda Cluster di amministrazione. Nell'elenco a discesa Profili, seleziona il nome del profilo creato in precedenza. Puoi selezionare più profili da applicare al cluster.
Verifica il nome di dominio del profilo. Si tratta del nome di dominio mappato al profilo del provider di identità. Gli utenti non autenticati che tentano di accedere ai percorsi sul dominio vengono indirizzati per accedere con questo provider di identità. Questo nome di dominio è assegnato dall'operatore dell'infrastruttura.
A ogni profilo deve essere assegnato un nome di dominio diverso se deve essere applicato più di un profilo alla volta.
Per informazioni dettagliate sulla configurazione di un nome di dominio, vedi Configurare il nome di dominio per accedere al Centro di gestione.
Inserisci un nome utente iniziale a cui vengono concessi i diritti di accesso per l'amministratore della piattaforma (ad es. alice@example.com,robi@example.com). Il nome utente deve avere come prefisso il prefisso utente impostato nel profilo. Ad esempio, se il prefisso è
prefix-
, il nome utente nel campo Initial Platform Admin (Amministratore piattaforma iniziale) dovrebbe essereprefix-alice@example.com
. Per ulteriori informazioni sugli amministratori delle piattaforme e sull'autorizzazione, consulta i ruoli di autorizzazione.Applica le impostazioni e attendi alcuni minuti per l'applicazione delle configurazioni e il riavvio dei servizi.
Ora puoi accedere al Centro di gestione con il tuo nome di dominio. Se non hai eseguito l'accesso, il sistema ti reindirizzerà al tuo provider OIDC per eseguire l'accesso.
Configura OIDC tramite API
Invece di configurare OIDC tramite il Centro di gestione, puoi configurarlo anche tramite API.
Per configurare l'autenticazione OIDC, devi configurare il CRD ClientConfig del cluster di amministrazione con i dettagli di autenticazione. A tale scopo, crea un file con i seguenti contenuti (ad esempio
admin-cluster-oidc-config.yaml
):
spec:
authentication:
- name: CONFIGURATION_NAME
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
# The URI to redirect users going through the OAuth flow using cloud
# console.
# This is a required parameter not supported by Anthos private mode, so
# a dummy value is required.
cloudConsoleRedirectURI: http://cloud.console.not.enabled
extraParams: EXTRA_PARAMS
issuerURI: ISSUER_URI
# The redirect URL that kubectl uses for authorization.
kubectlRedirectURI: http://localhost:9879/callback
scopes: SCOPES
userClaim: USER_CLAIM
groupsClaim: GROUPS_CLAIM
certificateAuthorityData: CERT_AUTHORITY_DATA
Sostituisci quanto segue:
- CONFIGURATION_NAME: il nome della configurazione OIDC da creare.
- CLIENT_ID: ID dell'applicazione client che invia richieste di autenticazione al provider OpenID.
- CLIENT_SECRET: secret per l'applicazione client.
- EXTRA_PARAMS: parametri coppia chiave-valore aggiuntivi (separati da virgole) da inviare al provider OpenID.
- ISSUER_URI: URL a cui vengono inviate le richieste di autorizzazione al tuo OpenID.
- SCOPES: ambiti aggiuntivi (separati da virgole) da inviare al provider OpenID.
- USER_CLAIM: dichiarazione JWT da utilizzare come nome utente. Puoi scegliere altre attestazioni, ad esempio email o nome, a seconda del provider OpenID. Tuttavia, alle attestazioni diverse dall'indirizzo email viene aggiunto come prefisso l'URL dell'emittente per evitare conflitti di denominazione.
- GROUPS_CLAIM: nome della rivendicazione nel token ID OIDC in cui sono memorizzate le informazioni sul gruppo dell'utente.
- CERT_AUTHORITY_DATA: un certificato facoltativo con codifica PEM base-64 per il provider OIDC. Rimuovili se non sono necessari. Per creare la stringa codifica il certificato, incluse le intestazioni, in formato base64. Includi la stringa risultante in CertificateAuthorityData come riga singola.
Dopo aver modificato il file con la configurazione desiderata, esegui il comando seguente:
kubectl patch --kubeconfig=ADMIN_KUBECONFIG clientconfig default -n kube-public \
--type=merge --patch "$(cat OIDC_CONFIG)"
Sostituisci quanto segue:
- ADMIN_KUBECONFIG: percorso al file Kubeconfig del cluster di amministrazione.
- OIDC_CONFIG: percorso del file di configurazione creato.
Accedi con OIDC al server API Kubernetes del cluster di amministrazione
Gli utenti possono scaricare admin-actl-auth-login-config.yaml
dalla pagina Identità e accesso
dopo la configurazione di OIDC.
Nella pagina Identità e accesso, fai clic sulla scheda Identità, quindi sulla scheda Cluster.
Individua il cluster denominato admin e fai clic su Visualizza dettagli di configurazione.
Fai clic su Download config (Scarica configurazione di accesso) per scaricare la configurazione utilizzata per accedere con identità al server API Kubernetes del cluster di amministrazione.
Il file di output
admin-actl-auth-login-config.yaml
contiene la configurazione necessaria agli utenti per eseguire l'autenticazione con il cluster di amministrazione. Condividiadmin-actl-auth-login-config.yaml
con gli utenti attendibili che hanno bisogno di accedere al cluster.Dopo l'acquisizione di
admin-actl-auth-login-config.yaml
, gli utenti possono accedere utilizzando il comandoactl auth login
. Quando gli utenti accedono tramite browser, viene generato un file kubeconfig. Gli utenti possono utilizzare il nuovo file per accedere al cluster utilizzando le proprie credenziali federate:# Where to store the new kubeconfig export ADMIN_OIDC_KUBECONFIG=$(pwd)/admin-oidc-kubeconfig actl auth login --login-config=admin-actl-auth-login-config.yaml --cluster=admin \ --kubeconfig=${ADMIN_OIDC_KUBECONFIG} \ --preferred-auth="CONFIGURATION_NAME"
Sostituisci
CONFIGURATION_NAME
con il nome del profilo identità con cui eseguire l'autenticazione.Gli utenti possono ora utilizzare
${ADMIN_OIDC_KUBECONFIG}
per accedere alle risorse sul cluster di amministrazione, ad esempio:kubectl get pods -n anthos-management-center --kubeconfig=${ADMIN_OIDC_KUBECONFIG}
${ADMIN_OIDC_KUBECONFIG}
può essere utilizzato anche per autenticare i comandi dell'interfaccia a riga di comando diactl
, ad esempio:actl platform management-center describe --kubeconfig=${ADMIN_OIDC_KUBECONFIG}
Reimposta configurazione di autenticazione
Se un amministratore della piattaforma perde l'accesso al Centro di gestione a causa di un errore nelle impostazioni di autenticazione, esegui il comando seguente per reimpostare l'autenticazione OIDC sulla configurazione originale e recuperare il nuovo URL di accesso al Centro di gestione.
actl auth reset --kubeconfig=ADMIN_KUBECONFIG
# Get the new access URL to management center.
actl platform management-center describe --kubeconfig=ADMIN_KUBECONFIG
Passaggi successivi
- Scopri come configurare i ruoli di autorizzazione.