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

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

Limitazioni

Devi utilizzare un tipo di cluster che supporta SAML.

Prima di iniziare

  1. Install the 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 del fornitore di cui hai bisogno. Per ulteriori informazioni, vedi Condividere i dettagli del fornitore.

Configura il cluster

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

Per modificare default ClientConfig, assicurati di poterti connettere al cluster kubectl ed 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 arresta dopo la prima autenticazione riuscita. L'esempio 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 dal modo in cui l'amministratore della piattaforma ha configurato il provider.

Campo Obbligatorio Descrizione Formato
nome 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 L'ID entità SAML per il provider SAML, specificato in formato URI. Ad esempio: https://www.idp.com/saml. Stringa URL
idpSingleSignOnURI L'endpoint SSO del provider SAML, specificato in formato URI. Ad esempio: https://www.idp.com/saml/sso. Stringa URL
idpCertificateDataList Corrisponde ai certificati del provider di identità utilizzati per verificare la risposta SAML. Questi certificati devono essere codificati in base64 standard e in formato PEM. Sono supportati solo un massimo di 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 da anteporre ai nomi dei gruppi di sicurezza. per evitare conflitti con i nomi esistenti nelle regole di controllo dell'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 una 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 cluster. Se hai commesso errori di sintassi, ti viene chiesto di modificare nuovamente la configurazione per correggerli.

Passaggi successivi

Una volta applicata la configurazione, continua a configurare l'accesso degli utenti ai cluster.