Version 1.5

Authentication

GKE On-Prem unterstützt OpenID Connect (OIDC) zur Authentifizierung gegenüber Nutzerclustern über die Befehlszeile. Sehen Sie sich die folgenden Themen an:

Für die Anmeldung über die Google Cloud Console unterstützt GKE On-Prem das Inhabertoken eines Kubernetes-Dienstkontos. Siehe Von der Cloud Console aus in einem Cluster anmelden.

In diesem Thema wird davon ausgegangen, dass Sie mit OAuth 2.0 und OpenID Connect vertraut sind. Außerdem sollten Sie mit Bereichen und Anforderungen im Rahmen der OpenID-Authentifizierung vertraut sein.

Übersicht

Mit OIDC können Sie den Zugriff auf Kubernetes-Cluster verwalten und die Standardverfahren in Ihrer Organisation zum Erstellen, Aktivieren und Deaktivieren von Mitarbeiterkonten verwenden. Sie können die Sicherheitsgruppen Ihrer Organisation auch verwenden, um den Zugriff auf einen Kubernetes-Cluster oder auf bestimmte Dienste im Cluster zu konfigurieren.

  • Ein Nutzer meldet sich bei einem OpenID-Anbieter an, indem er einen Nutzernamen und ein Passwort angibt.

  • Der OpenID-Anbieter stellt ein ID-Token für den Nutzer aus. Das Token wird vom Anbieter signiert.

  • Eine Anwendung, die im Namen des Nutzers handelt, sendet eine HTTPS-Anfrage an den Kubernetes-API-Server. Die Anwendung enthält das ID-Token des Nutzers im Anfrage-Header.

  • Der Kubernetes API-Server überprüft das Token mithilfe des Zertifikats des Anbieters.

Wenn Ihr Unternehmen einen ADFS-Server (Active Directory Federation Services) ausführt, kann dieser als Ihr OpenID-Anbieter dienen. Eine andere Möglichkeit ist die Verwendung eines Drittanbieters als OpenID-Anbieter. Beispielsweise sind Google, Microsoft, Facebook und Twitter OpenID-Anbieter.

Kubernetes-API-Server über die gcloud-Befehlszeile aufrufen

Sie führen den gcloud anthos auth login-Befehl aus, um sich bei Ihren Clustern zu authentifizieren. Ihre Anfrage wird daher an den Kubernetes-API-Server gesendet.

Damit dies funktioniert, müssen Ihre OIDC-ID-Tokens in der Datei kubeconfig gespeichert sein. GKE On-Prem verwendet die gcloud-Befehlszeile des Cloud SDK, um das ID-Token und andere OIDC-Werte in der kubeconfig-Datei anzufordern und abzurufen.

Kubernetes-API-Server und ID-Token

Nach der Authentifizierung beim Cluster können Sie über die kubectl-Befehlszeile des Cloud SDK interagieren. Wenn kubectl den Kubernetes-API-Server im Namen des Nutzers aufruft, überprüft der API-Server das Token mithilfe des öffentlichen Zertifikats des OpenID-Anbieters. Anschließend parst der API-Server das Token, um die Identität und die Sicherheitsgruppen des Nutzers zu ermitteln.

Der API-Server ermittelt, ob der Nutzer berechtigt ist, diesen bestimmten Aufruf auszuführen. Dazu gleicht er die Sicherheitsgruppen des Nutzers mit der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) des Clusters ab.