Mit dem Diagnosetool für GKE Identity Service können Sie Probleme bei der FQDN-basierten Authentifizierung beheben. Wenn Sie Probleme bei der Authentifizierung bei einem Cluster mit einem bestimmten OIDC-Anbieter haben, können Sie das Tool aktivieren und damit schnell Konfigurationsprobleme erkennen, indem Sie Anmeldevorgänge mit Ihrem OIDC-Anbieter simulieren.
Das Diagnosetool ist nur für einzelne Cluster mit GKE Enterprise 1.32 oder höher verfügbar und unterstützt nur OIDC.
Diagnosetool aktivieren
Das Diagnosetool ist standardmäßig deaktiviert und muss aktiviert werden, bevor Sie es zur Fehlerbehebung verwenden können. So aktivieren Sie die Funktion:
Öffnen Sie die benutzerdefinierte ClientConfig-Ressource zum Bearbeiten:
kubectl edit clientconfig default \ --kubeconfig CLUSTER_KUBECONFIG -n kube-publicDas Manifest sollte in etwa so aussehen:
apiVersion: authentication.gke.io/v2alpha1 kind: ClientConfig metadata: name: default namespace: kube-public spec: authentication: - name: oidc oidc: clientID: example-client-id clientSecret: example-client-secret cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc extraParams: prompt=consent, access_type=offline issuerURI: https://example.com kubectlRedirectURI: http://localhost:PORT/callback scopes: openid,email,offline_access userClaim: emailFügen Sie dem ClientConfig-Manifest einen
identityServiceOptions-Abschnitt hinzu, um die Konfiguration des Diagnosedienstprogramms anzugeben, wie im folgenden Beispiel gezeigt:apiVersion: authentication.gke.io/v2alpha1 kind: ClientConfig metadata: name: default namespace: kube-public spec: identityServiceOptions: diagnosticInterface: enabled: true expirationTime: TIMESTAMP authentication: - name: oidc oidc: clientID: example-client-id clientSecret: example-client-secret cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc extraParams: prompt=consent, access_type=offline issuerURI: https://example.com kubectlRedirectURI: http://localhost:PORT/callback scopes: openid,email,offline_access userClaim: emailErsetzen Sie
TIMESTAMPdurch einen Ablaufzeitpunkt im RFC 3339-Format. Beispiel:2025-05-01T17:05:00Z. Die Ablaufzeit bestimmt, wann die Funktion für das Diagnosetool automatisch deaktiviert wird. Da das Diagnosetool für alle mit Clusterzugriff verfügbar ist, trägt die entsprechende Festlegung der Ablaufzeit dazu bei, dass das Tool nicht länger als nötig aktiviert bleibt. Beim Festlegen der Ablaufzeit wird empfohlen, sie auf 12 Stunden in der Zukunft festzulegen. Jede Zeit in der Zukunft ist jedoch gültig.Speichern Sie die Änderungen und beenden Sie den Texteditor, um das Manifest auf den Cluster anzuwenden.
Anmeldung mit dem Diagnosetool simulieren
Sobald das Diagnosetool aktiviert ist, können Sie ein Anmeldeereignis simulieren und die entsprechenden Diagnoseinformationen abrufen, mit denen Sie Probleme mit einem bestimmten Anbieter beheben können.
Öffnen Sie die Diagnoseseite in einem Browser, indem Sie die folgende URL aufrufen:
APISERVER-URL/diagnoseErsetzen Sie
APISERVER_URLdurch den vollständig qualifizierten Domainnamen (FQDN) für Ihren Cluster. Beispiel:https://apiserver.example.com.Wenn Sie einen Fehler wie den folgenden erhalten:
forbidden: user \"system:anonymous\" cannot get path \"/diagnose\"Hängen Sie den Portnummernwert von
:11001anAPISERVER_URLan. Beispiel:https://apiserver.example.com:11001/diagnoseAuf der Diagnoseseite wird eine Liste der für Ihren Cluster konfigurierten OIDC-Anbieter angezeigt.
Wählen Sie den Anbieter aus, für den Sie eine Fehlerbehebung ausführen möchten.
Melden Sie sich wie gewohnt an.
Am Ende des Anmeldevorgangs wird im Dienstprogramm eine Seite mit Diagnoseinformationen angezeigt, die Ihnen bei der Fehlerbehebung helfen können.
Anmeldeprobleme mithilfe der Diagnoseseite beheben
Die Diagnoseseite enthält eine Authentifizierungszusammenfassung, die in drei Abschnitte unterteilt ist:
Status: Enthält entweder
SuccessoderFailed, je nachdem, ob die Authentifizierung erfolgreich war.Identitätsanbieter: Enthält Details wie
Name,Client IDundUserClaimzum Anbieter, der für die Anmeldung verwendet wurde.ID-Token: Enthält Informationen zum ID-Token, das von GKE Identity Service mit dem angegebenen Anbieter abgerufen wurde. Das ID-Token ist ein JSON-Objekt, das eine Reihe von Schlüssel/Wert-Paaren enthält. Schlüssel können
iss,aud,subundemailenthalten.
Probleme mit der Authentifizierung beheben
Wenn der Inhalt des Abschnitts Status darauf hinweist, dass die Authentifizierung erfolgreich war, und weiterhin Probleme auftreten, sind möglicherweise fehlende rollenbasierte Zugriffssteuerungen (Role-Based Access Controls, RBACs) die Ursache. Weitere Informationen zur Fehlerbehebung finden Sie unter RBACs for groups not working for OIDC providers.
Fehler bei der Authentifizierung beheben
Wenn der Inhalt des Bereichs Status darauf hinweist, dass die Authentifizierung fehlgeschlagen ist, suchen Sie zuerst nach Inkonsistenzen zwischen den Bereichen Identitätsanbieter und ID-Token.
Hier sind einige Authentifizierungsanforderungen, die Sie prüfen sollten:
Wenn das Feld
UserClaimin Identitätsanbieter leer ist, muss der Bereich ID-Token ein Feld mit dem Namensubenthalten. Ein fehlendessub-Feld deutet darauf hin, dass ein Problem mit dem ID-Token vorliegt.Der Feldwert
UserClaimin Identitätsanbieter muss ein Schlüssel im Abschnitt ID-Token sein. Wenn das FeldUserClaimbeispielsweise aufemailfestgelegt ist, muss im ID-Token ein Feld mit dem Namenemailvorhanden sein.Der Feldwert
GroupsClaimin Identity Provider (Identitätsanbieter) muss ein Schlüssel in ID Token (ID-Token) sein. Wenn das FeldGroupsClaimbeispielsweise aufgroupsListfestgelegt ist (für einen Anbieter, der Gruppen unterstützt), muss im ID-Token ein Feld mit dem NamengroupsListvorhanden sein.Der Feldwert
Client IDunter Identitätsanbieter muss im Wert des Feldsaudim Bereich ID-Token enthalten sein.
Wenn eine der oben genannten Bedingungen nicht erfüllt ist, finden Sie in einem der folgenden Leitfäden weitere Informationen zur richtigen Konfiguration Ihrer Cluster mit GKE Identity Service:
Wenn Sie GKE Identity Service für einzelne Cluster einrichten, folgen Sie der Anleitung zum Konfigurieren einzelner Cluster.
Wenn Sie GKE Identity Service auf Flottenebene einrichten, folgen Sie der Anleitung zum Konfigurieren einer Flotte von Clustern.
Protokolle für die weitere Fehlerbehebung verwenden
Die Pod-Logs von GKE Identity Service enthalten zusätzliche Informationen zur Fehlerbehebung. So verwenden Sie GKE Identity Service-Pod-Logs: