Configura i cluster membri del parco risorse per l'autenticazione SAML

Questo documento descrive come gli amministratori di cluster o gli operatori di applicazioni possono configurare i cluster Kubernetes per supportare l'autenticazione da un provider Security Assertion Markup Language (SAML) di terze parti. Per saperne di più, consulta Informazioni sull'autenticazione tramite identità di terze parti.

Limitazioni

Devi utilizzare un tipo di cluster che supporti SAML.

Prima di iniziare

  1. Installa Google Cloud CLI.

  2. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  3. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  4. Dopo aver inizializzato gcloud CLI, aggiornala e installa i componenti richiesti:

    gcloud components update
    gcloud components install kubectl
  5. Assicurati che l'amministratore della piattaforma ti abbia fornito tutte le informazioni necessarie sul fornitore. Per saperne di più, consulta Condividi i dettagli del provider.

Configura il cluster

Per configurare un cluster per l'autenticazione tramite SAML, configura una risorsa personalizzata di Kubernetes denominata ClientConfig con informazioni sul provider di identità e sui parametri che il provider deve restituire per le informazioni utente.

Per modificare default ClientConfig, assicurati di poterti connettere al cluster kubectl, quindi esegui questo comando:

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

Sostituisci KUBECONFIG_PATH con il percorso del file kubeconfig del cluster, ad esempio $HOME/.kube/config.

Un editor di testo carica la risorsa ClientConfig del cluster. Aggiungi l'oggetto spec.authentication.saml come mostrato nell'esempio seguente. Non modificare i dati predefiniti già scritti.

apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
  name: default
  namespace: kube-public
spec:
  authentication:
  - name: NAME
    saml:
      attributeMapping:
        ATTRIBUTE_KEY_1: ATTRIBUTE_CEL_EXPRESSION_1
        ATTRIBUTE_KEY_2: ATTRIBUTE_CEL_EXPRESSION_2
      groupsAttribute: GROUPS_ATTRIBUTE
      groupPrefix: GROUP_PREFIX
      idpEntityID: ENTITY_ID
      idpSingleSignOnURI: SIGN_ON_URI
      idpCertificateDataList: IDP_CA_CERT
      userAttribute: USER_ATTRIBUTE
      userPrefix: USER_PREFIX
    certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA
    preferredAuthentication: PREFERRED_AUTHENTICATION
    server: <>
# Rest of the resource is managed by Google. DO NOT MODIFY.
...

Puoi aggiungere più configurazioni di provider di identità OIDC, LDAP e SAML allo stesso ClientConfig. Il cluster tenta di autenticarsi con ogni configurazione nell'ordine in cui sono definite e si interrompe dopo la prima autenticazione riuscita. L'esempio di ClientConfig seguente definisce più provider di identità in un ordine specifico:

apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
  name: default
  namespace: kube-public
spec:
  authentication:
  - aws:
      region: us-west-2
    name: AWS Login
  - ldap:
  # Multiple lines are omitted here.
  - saml:
  # Multiple lines are omitted here.
  - azureAD:
  # Multiple lines are omitted here.
  - oidc:
    name: Okta OIDC
  # Multiple lines are omitted here.
  - oidc:
    name: Google OIDC
  # Multiple lines are omitted here.

Campi SAML ClientConfig

La tabella seguente descrive i campi dell'oggetto ClientConfig saml. I campi che devi aggiungere dipendono dai token del provider di identità e dalla modalità di configurazione del provider da parte dell'amministratore della piattaforma.

Campo Obbligatorio Descrizione Formato
nome Sì Il nome che vuoi utilizzare per identificare questa configurazione, in genere il nome del provider di identità. Il nome di una configurazione deve iniziare con una lettera seguita da un massimo di 39 lettere minuscole, numeri o trattini e non può terminare con un trattino. Stringa
idpEntityID Sì L'ID entità SAML per il provider SAML, specificato in un formato URI. Ad esempio: https://www.idp.com/saml. Stringa URL
idpSingleSignOnURI sì L'endpoint SSO del provider SAML, specificato in formato URI. Ad esempio: https://www.idp.com/saml/sso. Stringa URL
idpCertificateDataList Sì Corrisponde ai certificati del provider di identità utilizzati per verificare la risposta SAML. Questi certificati devono essere codificati in base64 standard e formattati in PEM. Sono supportati al massimo due certificati per facilitare la rotazione dei certificati del provider di identità. Stringa
userAttribute No Nome dell'attributo nella risposta SAML che contiene il nome utente. Stringa
groupsAttribute No Nome dell'attributo nella risposta SAML che contiene le informazioni sul gruppo dell'utente. Stringa
userPrefix No Il prefisso da anteporre alle attestazioni utente per evitare conflitti con i nomi esistenti, se non vuoi utilizzare il prefisso predefinito. Stringa
groupPrefix No Il prefisso che vuoi anteporre ai nomi dei gruppi di sicurezza. per evitare conflitti con i nomi esistenti nelle regole di controllo dell'accesso#39;accesso se hai configurazioni per più provider di identità (in genere il nome del provider). Stringa
attributeMapping No La mappatura degli attributi utente aggiuntivi. Stringa
certificateAuthorityData No Se fornita dall'amministratore della piattaforma, questa è una stringa di certificato con codifica PEM per il provider di identità. Includi la stringa risultante in certificateAuthorityData come singola riga. Stringa
preferredAuthentication No Nome del metodo di autenticazione preferito configurato nel cluster. Stringa

Dopo aver completato ClientConfig, salva il file, che aggiorna ClientConfig sul tuo cluster. Se hai commesso errori di sintassi, ti verrà chiesto di modificare nuovamente la configurazione per correggerli.

Passaggi successivi

Dopo aver applicato la configurazione, continua con la configurazione dell'accesso degli utenti ai cluster.