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.