Fehlerbehebung bei Problemen mit dem LDAP-Server
Dieses Dokument enthält eine Anleitung zur Fehlerbehebung bei Problemen mit dem LDAP-Server im GKE Identity Service.
Verbindungsproblem
Wenn Sie GKE Identity Service konfigurieren, können beim Herstellen einer Verbindung zu einem LDAP-Server Verbindungsprobleme auftreten. Das Konnektivitätsproblem kann auch auftreten, wenn das Zertifikat zur Identifizierung des LDAP-Servers nicht mit dem in der ClientConfig genannten Zertifikat übereinstimmt.
Fehlermeldung
Die folgenden Meldungen gelten für Fehler, die beim Ausführen des Befehls gcloud anthos auth login
auftreten.
ERROR: LDAP login failed: could not obtain an STS token: Post "https://127.0.0.1:15001/sts/v1beta/token": failed to obtain an endpoint for deployment anthos-identity-service/ais: Unauthorized
ERROR: Configuring Anthos authentication failed
Lösung
Sie können die Probleme auf eine der folgenden Arten beheben:
- Wenn GKE Identity Service keine Verbindung zum LDAP-Server herstellen kann, gehen Sie so vor:
- Um zu prüfen, ob Netzwerktraffic den LDAP-Server (Identitätsanbieter) vom Cluster aus erreichen kann, verwenden Sie
telnet
,nc
oder einen ähnlichen Befehl, um eine Verbindung zum LDAP-Server herzustellen. Zum Herstellen einer Verbindung zum LDAP-Server müssen Sie den Befehl in einem Knoten oder Pod ausführen, in dem GKE Identity Service ausgeführt wird. - Wenn der Befehl erfolgreich ausgeführt wurde, sollte der GKE Identity Service-Pod eine Verbindung zum LDAP-Server herstellen.
- Wenn der Befehl fehlschlägt, weist dies auf ein Problem mit der Netzwerkverbindung hin. Prüfen Sie die Netzwerkeinstellungen oder wenden Sie sich an Ihren Netzwerkadministrator, um das Verbindungsproblem zu beheben.
- Um zu prüfen, ob Netzwerktraffic den LDAP-Server (Identitätsanbieter) vom Cluster aus erreichen kann, verwenden Sie
- Prüfen Sie, ob das öffentliche Zertifikat in der Konfiguration richtig formatiert ist und für folgende Fälle zu Ihrem LDAP-Server passt:
- Sie verwenden LDAP mit TLS.
- Sie authentifizieren sich mit einem Dienstkonto bei LDAP. Sie verwenden ein Zertifikat, um das Dienstkonto beim LDAP-Server zu identifizieren.
Authentifizierungsproblem
In einem der folgenden Fälle tritt ein Authentifizierungsproblem auf:
- Die LDAP-Anbietereinstellungen sind in der ClientConfig für GKE Identity Service falsch konfiguriert.
- Die von Ihnen angegebenen Nutzeranmeldedaten sind auf dem LDAP-Server nicht vorhanden.
- Der LDAP-Server wird nicht ausgeführt.
Fehlermeldung
Die folgenden Meldungen gelten für Fehler, die beim Ausführen des Befehls gcloud anthos auth login
auftreten.
ERROR: LDAP login failed: could not obtain an STS token: Post "https://127.0.0.1:15001/sts/v1beta/token": failed to obtain an endpoint for deployment anthos-identity-service/ais: Unauthorized
ERROR: Configuring Anthos authentication failed
Lösung
Prüfen Sie als Clusteradministrator die GKE Identity Service-Logs und beheben Sie die Authentifizierungsprobleme so:
Can't contact LDAP server
: Weitere Informationen zur Behebung dieses Problems finden Sie unter Verbindungsprobleme.Attempting to bind as the LDAP service account
: GKE Identity Service versucht, mithilfe der in der ClientConfig angegebenen Dienstkonto-Anmeldedaten eine Verbindung zum LDAP-Server herzustellen. Ist dieser Logeintrag nicht vorhanden, liegt ein Verbindungsproblem vor.Successfully completed BIND as LDAP service account
: GKE Identity Service kann erfolgreich eine Verbindung zum LDAP-Server herstellen und das Dienstkonto zur Nutzerauthentifizierung verwenden. Ist dieser Logeintrag nicht vorhanden, liegt ein Konfigurationsproblem vor.Successfully found an entry for the user in the database
: Auf dem LDAP-Server ist ein Nutzereintrag vorhanden. Dies bedeutet, dass die FelderbaseDN
,filter
undloginAttribute
korrekt für den Abruf von Nutzern konfiguriert sind. Diese Meldung wird nur angezeigt, wenn die Logging-Ausführlichkeit über der Standardstufe liegt. Weitere Informationen zum Aktivieren von Logs finden Sie unter Debug-Log aktivieren.Attempting to BIND as the user to verify their credentials
: GKE Identity Service versucht, Nutzeranmeldedaten zu prüfen.Successfully completed LDAP authentication
: Die Nutzerauthentifizierung ist erfolgreich. Das Fehlen dieses Logeintrags weist auf ungültige Anmeldedaten hin.
Authentifizierungstoken ist abgelaufen
Trotz einer erfolgreichen Anmeldung können Probleme auftreten, wenn das Authentifizierungstoken abgelaufen ist.
Fehlermeldung
ERROR: You must be logged in to the server (Unauthorized)
Lösung
Um das Problem zu beheben, melden Sie sich noch einmal beim Server an.
Problem mit RBAC-Rollenbindung für den Nutzer oder die Gruppe
Dieses Problem tritt auf, wenn die Authentifizierung erfolgreich ist, jedoch die Autorisierung jedoch fehlschlägt, weil keine RBAC-Rollenbindung an den Nutzer oder die Gruppe besteht. Dieses Problem besteht beispielsweise weiterhin, wenn Sie versuchen, den Befehl kubectl get pods
auszuführen.
Fehlermeldung
Error from server (Forbidden): <SERVICE or PODS> is forbidden: <MORE DETAILS>
Lösung
So können Sie das Problem beheben:
- Melden Sie sich bei Ihrem LDAP-Server an, um die Gruppen des Zielnutzers aufzurufen.
- Prüfen Sie, ob die Kubernetes-Rollen und -Rollenbindungen korrekt definiert sind und mit den Werten in Ihrem LDAP-Verzeichnis übereinstimmen. Ein Administrator kann mithilfe der Nutzeridentität in Kubernetes dabei helfen, die Rollenbindungen zu überprüfen.
- Aktualisieren Sie die Rollenbindung so, dass die Gruppe des Zielnutzers berechtigt ist, die erforderliche Aktion auszuführen.
- Prüfen Sie, ob die Werte für
baseDN
und optionalfilter
undidentifierAttribute
für Gruppen korrekt sind. GKE Identity Service verwendet die Gruppenkonfiguration in diesen Feldern, um alle Gruppen abzufragen, zu denen der Nutzer gehört. WennbaseDN
leer ist, werden dem Kubernetes API-Server keine Gruppen bereitgestellt. In einem solchen Fall werden keine Nachrichten protokolliert. WennbaseDN
nicht leer ist, fragt GKE Identity Service die Datenbank nach den Gruppen des Nutzers ab.- Ist die Abfrage erfolgreich, werden die Gruppen dem Kubernetes API-Server bereitgestellt.
- Schlägt die Abfrage fehl, werden die Gruppen nicht dem Kubernetes API-Server bereitgestellt. In diesem Fall müssen Sie die Konfigurationswerte
baseDN
undfilter
für Gruppen korrigieren.
Der Nutzer gehört mehreren Gruppen an
Dieses Problem tritt auf, wenn ein Nutzer mehreren Gruppen angehört.
Fehlermeldung
could not obtain an STS token: STS token exceeds allowed size limit. Possibility of too many groups associated with the credentials provided.
Lösung
Als Clusteradministrator müssen Sie das Feld filter
in der ClientConfig konfigurieren, um die Anzahl der Gruppen zu reduzieren, die von der Abfrage an den LDAP-Server zurückgegeben werden.
Problem mit der Versionskompatibilität
Dieses Problem tritt auf, wenn die Versionskompatibilität zwischen dem GKE Identity Service und der installierten Version des Google Cloud CLI nicht gegeben ist.
Fehlermeldung
unable to parse STS Token Response
could not obtain an STS token: JSON parse error: The request was malformed.
could not obtain an STS token: Grant type must confirm that the request is intended for a token exchange.
could not obtain an STS token: Requested token type must correspond to an access token.
could not obtain an STS token: Subject token type must be a valid token type supported for token exchange.
Lösung
Sie müssen das Dienstprogramm gcloud und GKE Identity Service auf die neueste verfügbare Version aktualisieren.
Statuscode 401 – Authentifizierung fehlgeschlagen
Dieses Problem tritt auf, wenn der Kubernetes API-Server den Dienst nicht authentifizieren kann und den Fehlercode 401 zurückgibt.
Fehlermeldung
ERROR: LDAP login failed: STSToken() failed: could not obtain an STS token: Post "https://127.0.0.1:15001/sts/v1beta/token": DialContext() failed: podEndpoint() failed to obtain an endpoint for deployment anthos-identity-service/ais: Unauthorized
ERROR: Configuring Anthos authentication failed
Lösung
Sie können dieses Problem auf eine der folgenden Arten beheben:
- Prüfen Sie mit dem folgenden Befehl, ob der GKE Identity Service-Pod den Status
running
hat:kubectl get pods -l k8s-app=ais -n anthos-identity-service --kubeconfig USER_CLUSTER_KUBECONFIG
- Prüfen Sie die LDAP-Konfiguration in ClientConfig mit dem folgenden Befehl:
kubectl get clientconfig -n kube-public -o jsonpath='{.items[].spec.authentication[].ldap}' --kubeconfig USER_CLUSTER_KUBECONFIG
- Prüfen Sie die Logs auf detaillierte Informationen zum Fehler. Weitere Informationen zum Logging finden Sie unter Logging und Monitoring für Systemkomponenten verwenden.