PowerFlex 4.x Impossible d’ajouter ou de supprimer un groupe LDAP

Summary: Après la suppression d’AD de PFxM et Keycloak ne peuvent pas supprimer les groupes LDAP mis en cache.

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

Scénario

Une première tentative d’ajout d’un groupe entraîne une erreur :

Failed to add Remote group 
Failed to find request group 

Ajouter un utilisateur distant

Échec de l’ajout du groupe distant

 

Après avoir rempli des groupes dans le filtre keycloak ldap, conformément à PowerFlex 4.X - Application du filtre de recherche de groupe LDAP dans la console d’administration PFxM Keycloak | Dell US et la synchronisation entre PFxM et le fournisseur LDAP, le sso.stdout.log indique que la synchronisation de groupe ne fonctionne pas :

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

Après la suppression du fournisseur LDAP, la base de données affiche toujours des groupes (par exemple, quatre groupes sont affichés ci-dessous)

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)

La connectivité à ldap à partir de PFMP doit être confirmée à l’aide de la commande suivante :

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

Exemple :

Keycloak

Impact

Impossible d’ajouter ou de supprimer des groupes LDAP.

Cause

Lorsque AD est supprimé :

  • Le back-end lance la suppression des utilisateurs et groupes associés.
  • Cette suppression se produit par lots pour gérer efficacement le processus.


Lorsque AD est ajouté à nouveau lors de la suppression en cours :

  • Keycloak commence à synchroniser les groupes à partir de l’AD nouvellement ajouté.
  • Si la synchronisation échoue pour une raison quelconque au cours de ce processus, des problèmes peuvent survenir.


Si AD est supprimé à nouveau pendant l’échec de synchronisation :

  • Les groupes résiduels de l’échec de synchronisation restent visibles dans l’interface utilisateur de Keycloak.


Ces groupes résiduels ne sont pas activement liés à un AD et peuvent nécessiter un nettoyage manuel.

 

Resolution

Supprimez chaque groupe individuellement à l’aide de l’API, un par un.

1) Récupérer les informations d’identification KeyCloak.

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) Obtenez le jeton d’accès (remarque : remplacez 4578ZZyT3f par le mot de passe de la sortie ci-dessus) :

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) Rechercher des groupes à l’aide de l’API (répertoriez 10 groupes à la fois)

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

4) Supprimez les groupes un par un (remplacez-les par chaque identifiant de l’étape 3 ci-dessus).

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

Vous pouvez également utiliser le script de boucle pour supprimer une group_id à la fois.

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

Exemple 

exemple

Versions affectées

PFMP 4.x

Problème résolu dans la version

 La future version de Keycloak prendra en charge la suppression de groupes en bloc.

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.