Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Cluster für GKE Identity Service mit SAML einrichten
Dieses Dokument richtet sich an Clusteradministratoren oder Anwendungsoperatoren, die GKE Identity Service auf einzelnen Clustern einrichten möchten, sodass sich Entwickler und andere Nutzer mit ihren vorhandenen Identitätsdetails aus einer Security Assertion Markup Language (SAML) anmelden können. In der Anleitung wird davon ausgegangen, dass Sie die Übersicht über GKE Identity Service gelesen haben.
Bei der Anleitung in diesem Dokument wird davon ausgegangen, dass GKE Identity Service bereits als Clientanwendung bei Ihrem Identitätsanbieter registriert ist.
Prüfen Sie, ob die folgenden Befehlszeilentools installiert sind:
Verwenden Sie die Version 466.0.0 der Google Cloud CLI oder höher, die gcloud, oder die das Befehlszeilentool für die Interaktion mit Google Cloud, enthält. Informationen zur Installation des Google Cloud CLI finden Sie in der Installationsanleitung.
kubectl zum Ausführen von Befehlen für Kubernetes-Cluster. Falls Sie kubectl installieren müssen, folgen Sie dieser Anleitung.
Wenn Sie Cloud Shell als Shell-Umgebung für die Interaktion mit Google Cloud verwenden, sind diese Tools für Sie installiert.
Achten Sie darauf, dass die gcloud CLI für die Verwendung mit dem Projekt initialisiert ist, in dem die Cluster registriert sind.
Cluster konfigurieren
GKE Identity Service verwendet einen speziellen benutzerdefinierten Ressourcentyp (CRD) für Kubernetes zum Konfigurieren Ihrer Cluster mit dem Namen ClientConfig, mit Feldern für Informationen zum Identitätsanbieter und den Parametern, die zum Zurückgeben von Nutzerinformationen erforderlich sind.
kubectl
Zum Bearbeiten der Standard-ClientConfig müssen Sie über kubectl eine Verbindung zu Ihrem Cluster herstellen und den folgenden Befehl ausführen:
Ersetzen Sie KUBECONFIG_PATH durch den Pfad zur kubeconfig-Datei Ihres Clusters, z. B. $HOME/.kube/config.
Die ClientConfig-Ressource des Clusters wird in einem Texteditor geladen. Fügen Sie das saml-Objekt wie im Snippet angegeben hinzu.
apiVersion:authentication.gke.io/v2alpha1kind:ClientConfigmetadata:name:defaultnamespace:kube-publicspec:authentication:-name:NAMEsaml:idpEntityID:ENTITY_IDidpSingleSignOnURI:SIGN_ON_URIidpCertificateDataList:IDP_CA_CERTuserAttribute:USER_ATTRIBUTEgroupsAttribute:{'<var name="user attribute">GROUPS_ATTRIBUTE</var>'}}userPrefix:USER_PREFIXgroupPrefix:GROUP_PREFIXattributeMapping:ATTRIBUTE_KEY_1 :ATTRIBUTE_CEL_EXPRESSION_1ATTRIBUTE_KEY_2 :ATTRIBUTE_CEL_EXPRESSION_2certificateAuthorityData:CERTIFICATE_STRINGpreferredAuthentication:PREFERRED_AUTHENTICATIONserver:<>
# Rest of the resource is managed by Google. DO NOT MODIFY....
In der folgenden Tabelle sind die Felder des ClientConfig-saml-Objekts beschrieben. Welche Felder Sie hinzufügen müssen, hängt von Ihrem Identitätsanbieter und den Einrichtungsoptionen ab, die von Ihrem Plattformadministrator ausgewählt wurden, wenn Sie den Anbieter für GKE Identity Service konfigurieren.
Feld
Erforderlich
Beschreibung
Format
Name
Ja
Der Name, den Sie dieser Konfiguration zuweisen möchten, normalerweise der Name des Identitätsanbieters. Ein Konfigurationsname muss mit einem Buchstaben beginnen, gefolgt von bis zu 39 Kleinbuchstaben, Zahlen oder Bindestrichen. Das letzte Zeichen darf kein Bindestrich sein.
String
idpEntityID
Ja
Die SAML-Entitäts-ID für den SAML-Anbieter im URI-Format. Beispiel: https://www.idp.com/saml.
URL String
idpSingleSignOnURI
Ja
Der SSO-Endpunkt des SAML-Anbieters, angegeben im URI-Format. Beispiel: https://www.idp.com/saml/sso.
URL String
idpCertificateDataList
Ja
Entspricht den Zertifikaten des Identitätsanbieters, die zur Überprüfung der SAML-Antwort verwendet werden.
Diese Zertifikate müssen standardmäßig Base64-codiert und im PEM-Format vorliegen. Es werden nur maximal zwei Zertifikate unterstützt, um die Zertifikatsrotation des Identitätsanbieters zu ermöglichen.
String
userAttribute
Nein
Name des Attributs in der SAML-Antwort, das den Nutzernamen enthält.
String
groupsAttribute
Nein
Name des Attributs in der SAML-Antwort, das die Gruppeninformationen des Nutzers enthält.
String
userPrefix
Nein
Das Präfix, das Sie den Nutzeranforderungen voranstellen möchten, um Konflikte mit vorhandenen Namen zu vermeiden. Sie können jedoch auch das Standardpräfix verwenden.
String
groupPrefix
Nein
Das Präfix, das Sie Sicherheitsgruppennamen voranstellen möchten, um Konflikte mit vorhandenen Namen in Ihren Zugriffssteuerungsregeln zu vermeiden, wenn Sie Konfigurationen für mehrere Identitätsanbieter haben (normalerweise der Anbietername).
String
attributeMapping
Nein
Die Zuordnung zusätzlicher Nutzerattribute.
String
certificateAuthorityData
Nein
Ein eventuell von Ihrem Plattformadministrator bereitgestellter PEM-codierter Zertifikatstring für den Identitätsanbieter. Fügen Sie den resultierenden String in certificateAuthorityData als eine einzelne Zeile ein.
String
preferredAuthentication
Nein
Name der bevorzugten Authentifizierungsmethode, die im Cluster konfiguriert ist.
String
Nachdem Sie Ihre ClientConfig abgeschlossen haben, speichern Sie die Datei, wodurch die ClientConfig in Ihrem Cluster aktualisiert wird. Bei Syntaxfehlern werden Sie aufgefordert, die Konfiguration noch einmal zu bearbeiten, um sie zu beheben.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2024-12-23 (UTC)."],[],[],null,["# Set up clusters for GKE Identity Service with SAML\n==================================================\n\nThis document is for **cluster administrators** or application operators who want to set up GKE Identity Service on individual clusters, allowing developers and other users to log in to the clusters using their existing identity details from a [Security Assertion Markup Language (SAML)](https://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html) provider. The guide assumes that you have read the GKE Identity Service [overview](/kubernetes-engine/enterprise/identity).\nThe instructions in this document assume that GKE Identity Service has already been [registered with your identity provider](/kubernetes-engine/enterprise/identity/setup/saml-provider) as a client application.\n\nBefore you begin\n----------------\n\n- Ensure that your platform administrator has given you all the necessary information from [Register GKE Identity Service with your provider](/kubernetes-engine/enterprise/identity/setup/saml-provider) before you start setup.\n- Ensure that you have the following command line tools installed:\n\n - Use the 466.0.0 version of the Google Cloud CLI or higher, which includes `gcloud`, the command line tool for interacting with Google Cloud. If you need to install the Google Cloud CLI, see the [installation guide](/sdk/docs/install).\n - `kubectl` for running commands against Kubernetes clusters. If you need to install `kubectl`, follow these [instructions](/kubernetes-engine/fleet-management/docs/before-you-begin#install-kubectl).\n\n If you are using Cloud Shell as your shell environment for interacting with Google Cloud, these tools are installed for you.\n- Ensure that you have [initialized](/sdk/docs/install-sdk#initializing_the) the gcloud CLI for use with the project where the clusters are registered.\n\nConfigure the cluster\n---------------------\n\nGKE Identity Service uses a special Kubernetes custom resource type (CRD)\nto configure your clusters called ClientConfig, with fields for information about\nthe identity provider and the parameters it needs to return user information. \n\n### kubectl\n\nTo edit your default ClientConfig, make sure you can connect to your cluster\nusing `kubectl`, and run the following command: \n\n kubectl --kubeconfig=\u003cvar translate=\"no\"\u003eKUBECONFIG_PATH\u003c/var\u003e edit ClientConfigs default -n kube-public\n\nReplace \u003cvar translate=\"no\"\u003eKUBECONFIG_PATH\u003c/var\u003e with the path to your\ncluster's kubeconfig file---for example `$HOME/.kube/config`.\n\nA text editor loads your cluster's ClientConfig resource. Add the `saml`\nobject as indicated in the snippet. \n\n apiVersion: authentication.gke.io/v2alpha1\n kind: ClientConfig\n metadata:\n name: default\n namespace: kube-public\n spec:\n authentication:\n - name: \u003cvar name=\"name\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eNAME\u003c/span\u003e\u003c/var\u003e\n saml:\n idpEntityID: \u003cvar name=\"entity id\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eENTITY_ID\u003c/span\u003e\u003c/var\u003e\n idpSingleSignOnURI: \u003cvar name=\"sign on uri\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eSIGN_ON_URI\u003c/span\u003e\u003c/var\u003e\n idpCertificateDataList: \u003cvar name=\"idp ca cert\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eIDP_CA_CERT\u003c/span\u003e\u003c/var\u003e\n userAttribute: \u003cvar name=\"user attribute\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eUSER_ATTRIBUTE\u003c/span\u003e\u003c/var\u003e\n groupsAttribute: {'\u003cvar name=\"user attribute\"\u003eGROUPS_ATTRIBUTE\u003c/var\u003e'}}\n userPrefix: \u003cvar name=\"user prefix\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eUSER_PREFIX\u003c/span\u003e\u003c/var\u003e\n groupPrefix: \u003cvar name=\"group prefix\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eGROUP_PREFIX\u003c/span\u003e\u003c/var\u003e\n attributeMapping:\n ATTRIBUTE_KEY_1 : \u003cvar name=\"attribute cel expression 1\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eATTRIBUTE_CEL_EXPRESSION_1\u003c/span\u003e\u003c/var\u003e\n ATTRIBUTE_KEY_2 : \u003cvar name=\"attribute cel expression 2\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eATTRIBUTE_CEL_EXPRESSION_2\u003c/span\u003e\u003c/var\u003e\n certificateAuthorityData: \u003cvar name=\"cert string\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eCERTIFICATE_STRING\u003c/span\u003e\u003c/var\u003e\n preferredAuthentication: \u003cvar name=\"auth string\" translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePREFERRED_AUTHENTICATION\u003c/span\u003e\u003c/var\u003e\n server: \u003c\u003e\n\n # Rest of the resource is managed by Google. DO NOT MODIFY.\n ...\n\n| **Tip:** GKE Identity Service lets you configure multiple OIDC, LDAP, and SAML identity provider configurations in a single `ClientConfig` custom resource (CRD) for client authentication. GKE Identity Service attempts authentication with each CRD in the order they are defined, and stops after the first successful authentication.\n\nYou can configure multiple identity providers in your `ClientConfig` according to your requirements. This streamlines management and provides flexibility, letting you configure diverse authentication methods within a unified configuration resource. The following example `ClientConfig` defines multiple identity providers in the required order of authentication precedence. \n\n apiVersion: v1\n items:\n - apiVersion: authentication.gke.io/v2alpha1\n kind: ClientConfig\n ...\n spec:\n authentication:\n - aws:\n region: us-west-2\n name: AWS Login\n - ldap:\n ...\n - saml:\n ...\n - azureAD:\n ...\n - oidc:\n name: Okta OIDC\n ...\n -oidc:\n name: Google OIDC\n ...\n\nThe following table describes the fields of the ClientConfig `saml` object. The\nfields you need to add depend on your identity provider and the setup options\nchosen by your platform administrator when configuring the provider for GKE Identity Service.\n\nAfter you complete your ClientConfig, save the file, which updates the\nClientConfig on your cluster. If you've made any syntax errors, you are\nprompted to re-edit the configuration to fix them.\n\nWhat's next?\n------------\n\nAfter the configuration is applied, continue to [set up user access to clusters](/kubernetes-engine/enterprise/identity/setup/user-access)."]]