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
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init -
Dopo aver inizializzato gcloud CLI, aggiornala e installa i componenti richiesti:
gcloud components update gcloud components install kubectl
- 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 | 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 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 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.