PowerFlex 4.x LDAP-Gruppe kann nicht hinzugefügt oder entfernt werden

Summary: Nach AD-Entfernung aus PFxM und Keycloak können zwischengespeicherte LDAP-Gruppen nicht entfernt werden.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Beispiel

Ein erster Versuch, eine Gruppe hinzuzufügen, führt zu einem Fehler:

Failed to add Remote group 
Failed to find request group 

Hinzufügen eines Remotenutzers

Remotegruppe konnte nicht hinzugefügt werden

 

Nach dem Auffüllen von Gruppen im Keycloak-LDAP-Filter gemäß PowerFlex 4.X – So wenden Sie den LDAP-Gruppensuchfilter in der PFxM Keycloak Admin-Konsole an | Dell US und Synchronisierung von PFxM zum LDAP-Anbieter angezeigt wird, zeigt die sso.stdout.log, dass die Gruppensynchronisierung nicht funktioniert:

2024-09-25T07:10:31.684769872Z stdout F 2024-09-25T07:10:31.684Z  INFO 1 --- [io-8083-exec-10] c.d.s.c.DirectoryServicesController      : Received sync user request
2024-09-25T07:10:31.685080784Z stdout F 2024-09-25T07:10:31.684Z  INFO 1 --- [pool-9-thread-1] c.d.s.managers.DirectoryServiceManager   : starting sync process for ldap groups
2024-09-25T07:10:31.69678586Z stdout F 2024-09-25T07:10:31.696Z  INFO 1 --- [pool-9-thread-1] com.dell.sso.clients.KeycloakClient      : Ldap group sync started
2024-09-25T07:10:31.710659167Z stdout F 2024-09-25T07:10:31.710Z ERROR 1 --- [pool-9-thread-1] com.dell.sso.clients.KeycloakClient      : Failed to sync groups: HTTP 500 Internal Server Error
 
2024-09-25T07:10:31.710959458Z stderr F Exception in thread "pool-9-thread-1" java.lang.RuntimeException: com.dell.sso.exceptions.KeycloakException: Failed to sync groups or sync users

Nach dem Entfernen des LDAP-Anbieters zeigt die Datenbank weiterhin Gruppen an (z. B. unten werden vier Gruppen angezeigt)

delladmin@mvm1:/>kubectl exec -it -c database -n powerflex $(kubectl get pods -n powerflex -l='postgres-operator.crunchydata.com/role=master, postgres-operator.crunchydata.com/instance-set' | grep Running | cut -d' ' -f1) -- psql -U postgres -d keycloak -c "SELECT COUNT(*) FROM keycloak_group;"
 count
-------
     4
(1 row)

Die Konnektivität zu LDAP von PFMP sollte mit dem folgenden Befehl bestätigt werden:

kubectl exec -it keycloak-0 -n powerflex -- curl --verbose ldap://

Beispiel:

Keycloak

Auswirkungen

LDAP-Gruppen können nicht hinzugefügt oder entfernt werden.

Cause

Wenn AD entfernt wird:

  • Das Back-end initiiert das Löschen der zugehörigen Nutzer und Gruppen.
  • Dieser Löschvorgang erfolgt in Batches, um den Prozess effizient zu verwalten.


Wenn AD während des laufenden Löschens erneut hinzugefügt wird:

  • Keycloak beginnt mit der Synchronisierung von Gruppen über das neu hinzugefügte AD.
  • Wenn die Synchronisierung während dieses Prozesses aus irgendeinem Grund fehlschlägt, können Probleme auftreten.


Wenn AD während eines Synchronisierungsfehlers erneut entfernt wird:

  • Verbleibende Gruppen aus der fehlgeschlagenen Synchronisation bleiben in der Keycloak-Benutzeroberfläche sichtbar.


Diese Restgruppen sind nicht aktiv an AD gebunden und erfordern möglicherweise eine manuelle Bereinigung.

 

Resolution

Löschen Sie jede Gruppe einzeln über die API, eine nach der anderen.

1) Abrufen der Keycloak-Zugangsdaten

kubectl get secrets -n powerflex keycloak-admin-credentials -o jsonpath='{.data.username}' | base64 --decode; echo -e
kubectl get secrets -n powerflex keycloak-admin-credentials -o jsonpath='{.data.password}' | base64 --decode; echo -e

2) Abrufen des Zugriffstokens (Hinweis: Ersetzen Sie 4578ZZyT3f durch das Kennwort aus der obigen Ausgabe):

TOKEN=$(curl -X POST https://keycloak-http.powerflex/auth/realms/master/protocol/openid-connect/token -H 'Content-Type: application/x-www-form-urlencoded' -d 'scope=openid&grant_type=password&client_id=admin-cli&username=keycloak&password=4578ZZyT3f' | jq -r '.access_token'); echo $TOKEN

3) Suchen Sie über die API nach Gruppen (listen Sie 10 Gruppen gleichzeitig auf)

curl -X GET "https://keycloak-http.powerflex/auth/admin/realms/powerflex/groups?first=0&max=10" -H "Authorization: Bearer $TOKEN" | jq

4) Löschen Sie die Gruppen nacheinander (ersetzen Sie sie durch jede ID aus Schritt 3 oben.

curl -X DELETE https://keycloak-http.powerflex/auth/admin/realms/powerflex/groups/"" -H "Authorization: Bearer $TOKEN"

Alternativ können Sie das Loop-Skript verwenden, um group_id einzeln zu löschen.

for group_id in $(curl -X GET "https://keycloak-http.powerflex/auth/admin/realms/powerflex/groups" -H "Authorization: Bearer $TOKEN" | jq -r '.[].id'); do  curl -X DELETE "https://keycloak-http.powerflex/auth/admin/realms/powerflex/groups/$group_id" -H "Authorization: Bearer $TOKEN"; done

Beispiel 

Beispiel:

Betroffene Versionen

PFMP 4.x

Behoben in Version

 Zukünftige Versionen von Keycloak unterstützen das Massenlöschen von Gruppen.

Affected Products

PowerFlex rack, VxFlex Ready Nodes, PowerFlex custom node, PowerFlex appliance R650, PowerFlex appliance R6525, PowerFlex appliance R660, PowerFlex appliance R6625, Powerflex appliance R750, PowerFlex appliance R760, PowerFlex appliance R7625 , PowerFlex appliance R640, PowerFlex appliance R740XD, PowerFlex appliance R7525, PowerFlex appliance R840 ...
Article Properties
Article Number: 000291045
Article Type: Solution
Last Modified: 04 Mar 2025
Version:  1
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.