Authentifizierung

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

Für die Anmeldung über die Google Cloud Console wird GKE On-Prem mit einem Inhabertoken eines Kubernetes-Dienstkontos unterstützt. Siehe Anmeldung .

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 mit dem Kubectl-Plug-in für OIDC aufrufen

Normalerweise gibt ein Nutzer ein kubectl und als Ergebnis kubectl ruft den Kubernetes-API-Server auf.

Damit dies funktioniert, muss sich das ID-Token des Nutzers in der kubeconfig-Datei befinden. GKE On-Prem bietet das Kubectl-Plug-in für OIDC, um das Token und andere OIDC-Werte in kubeconfig einzubinden.

Der Kubernetes API-Server und das ID-Token

Wenn kubectl den Kubernetes-API-Server im Namen des Users 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 des Nutzers 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.