Configurazione di identità e sicurezza con OIDC

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:

  1. Il nome di dominio utilizzato per accedere al Centro di gestione, fornito dall'operatore dell'infrastruttura, ad esempio anthos.example.com.
  2. 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à:

  1. Nella console di gestione, apri il menu Identità e accesso.

  2. Nella scheda Identity, fai clic su Set Anthos Identity Service (OIDC).

  3. Assegna un nome semplice al profilo nel campo Nome del profilo. Si tratta del nome a cui fa riferimento il profilo.

  4. Inserisci l'URL del provider OIDC, il Client ID e il client secret del tuo provider OIDC.

  5. 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.

  6. 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 come prefix-sally@example.com. L'utente è sally@example.com e il prefisso prefix- ha come prefisso l'utente per distinguere i diversi provider di identità.

  7. Imposta il campo Rivendicazione di gruppo. Nella modalità privata di Anthos, il valore predefinito è groups. Per ulteriori informazioni sui gruppi di associazioni ai ruoli, consulta la sezione Associazioni di ruoli.

  8. 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 come groupprefix-group. Il gruppo è group ed il prefisso groupprefix- è 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.

  9. (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 rivendicazioni profile predefinite dell'utente.
    • email include generalmente le rivendicazioni email e email_verified.
  10. 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.

  11. 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, in base64. 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.

  12. Fai clic su Submit (Invia) e torna alla scheda Identity and Access.

  13. 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.

  1. Nella scheda Identity Profile (Profilo di identità), fai clic su Apply to clusters (Applica ai cluster).

    Applica profilo al cluster di amministrazione

  2. 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.

    Pagina del profilo OIDC

  3. 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.

  4. 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 essere prefix-alice@example.com. Per ulteriori informazioni sugli amministratori delle piattaforme e sull'autorizzazione, consulta i ruoli di autorizzazione.

  5. 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.

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.

  1. Nella pagina Identità e accesso, fai clic sulla scheda Identità, quindi sulla scheda Cluster.

  2. Individua il cluster denominato admin e fai clic su Visualizza dettagli di configurazione.

  3. 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.

    Pulsante di download configurazione AIS

  4. 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. Condividi admin-actl-auth-login-config.yaml con gli utenti attendibili che hanno bisogno di accedere al cluster.

  5. Dopo l'acquisizione di admin-actl-auth-login-config.yaml, gli utenti possono accedere utilizzando il comando actl 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.

  6. 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}
    
  7. ${ADMIN_OIDC_KUBECONFIG} può essere utilizzato anche per autenticare i comandi dell'interfaccia a riga di comando di actl, 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