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.
Hinweise
- Achten Sie darauf, dass Ihr Plattformadministrator alle erforderlichen Informationen aus der Registrierung von GKE Identity Service bei Ihrem Anbieter erhalten hat, bevor Sie mit der Einrichtung beginnen.
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 Siekubectl
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.
- Verwenden Sie die Version 466.0.0 der Google Cloud CLI oder höher, die
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:
kubectl --kubeconfig=KUBECONFIG_PATH edit ClientConfigs default -n kube-public
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/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
saml:
idpEntityID: ENTITY_ID
idpSingleSignOnURI: SIGN_ON_URI
idpCertificateDataList: IDP_CA_CERT
userAttribute: USER_ATTRIBUTE
groupsAttribute: {'<var name="user attribute">GROUPS_ATTRIBUTE</var>'}}
userPrefix: USER_PREFIX
groupPrefix: GROUP_PREFIX
attributeMapping:
ATTRIBUTE_KEY_1 : ATTRIBUTE_CEL_EXPRESSION_1
ATTRIBUTE_KEY_2 : ATTRIBUTE_CEL_EXPRESSION_2
certificateAuthorityData: CERTIFICATE_STRING
preferredAuthentication: PREFERRED_AUTHENTICATION
server: <>
# 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.
Nächste Schritte
Nachdem die Konfiguration angewendet wurde, richten Sie den Nutzerzugriff auf Cluster ein.