PowerFlex 4.x no puede agregar ni quitar un grupo de LDAP

Summary: Después de la eliminación de AD de PFxM y Keycloak, no se pueden eliminar los grupos de LDAP almacenados en caché.

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

Situación

Un primer intento de agregar un grupo produce un error:

Failed to add Remote group 
Failed to find request group 

Agregar usuario remoto

No se pudo agregar el grupo remoto

 

Después de completar los grupos en el filtro LDAP de Keycloak, según PowerFlex 4.X: Cómo aplicar el filtro de búsqueda de grupos de LDAP en la consola de administración de Keycloak de PFxM | Dell EE. UU . y la sincronización de PFxM al proveedor de LDAP, la sso.stdout.log muestra que la sincronización de grupo no funciona:

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

Después de eliminar el proveedor de LDAP, la base de datos aún muestra grupos (por ejemplo, a continuación se muestran cuatro grupos)

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 conectividad a LDAP desde PFMP se debe confirmar con el siguiente comando:

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

Ejemplo:

Capa de teclas

Impacto

No se pueden agregar ni quitar grupos de LDAP.

Cause

Cuando se elimina AD:

  • El back-end inicia la eliminación de usuarios y grupos asociados.
  • Esta eliminación se produce en lotes para administrar el proceso de manera eficiente.


Cuando se vuelve a agregar AD durante una eliminación en curso:

  • Keycloak comienza a sincronizar grupos desde el AD recién agregado.
  • Si la sincronización falla por algún motivo durante este proceso, pueden surgir problemas.


Si AD se elimina nuevamente durante una falla de sincronización:

  • Los grupos residuales de la sincronización fallida permanecen visibles en la interfaz de usuario de Keycloak.


Estos grupos residuales no están vinculados activamente a ningún AD y pueden requerir una limpieza manual.

 

Resolution

Elimine cada grupo individualmente usando la API uno a la vez.

1) Recupere las credenciales de 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) Obtenga el token de acceso (nota: sustituya 4578ZZyT3f por la contraseña de la salida anterior):

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) Compruebe si hay grupos mediante la API (enumere 10 grupos a la vez)

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

4) Elimine los grupos uno a la vez (sustituya por cada ID del paso 3 anterior).

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

Alternativamente, use un script de bucle para eliminar group_id uno a la vez.

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

Ejemplo 

ejemplo

Versiones afectadas

PFMP 4.x

Problema corregido en la versión

 La versión futura de keycloak admitirá la eliminación masiva de grupos.

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.