PowerFlex 4.x Det gick inte att lägga till eller ta bort LDAP-grupp

Summary: Efter AD-borttagning från PFxM och Keycloak inte kan ta bort cachade LDAP-grupper.

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

Scenario

Ett första försök att lägga till en grupp resulterar i ett fel:

Failed to add Remote group 
Failed to find request group 

Lägg till fjärranvändare

Det gick inte att lägga till fjärrgrupp

 

När du har fyllt i grupper i LDAP-filtret för tangentbordshöljet, per PowerFlex 4.X – Så här använder du LDAP-gruppsökfilter i PFxM Keycloak Admin Console | Dell USA och synkronisera från PFxM till LDAP-leverantören visar sso.stdout.log att gruppsynkronisering inte fungerar:

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

När du har tagit bort LDAP-providern visar databasen fortfarande grupper (t.ex. nedan visas fyra grupper)

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)

Anslutning till ldap från PFMP bör bekräftas med följande kommando:

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

Exempel:

Nyckelmantel

Påverkan

Det går inte att lägga till eller ta bort LDAP-grupper.

Cause

När AD tas bort:

  • Serverdelen initierar borttagningen av associerade användare och grupper.
  • Den här borttagningen sker i omgångar för att hantera processen effektivt.


När AD läggs till igen under pågående borttagning:

  • Keycloak börjar synkronisera grupper från den nyligen tillagda AD:n.
  • Om synkroniseringen av någon anledning misslyckas under den här processen kan problem uppstå.


Om AD tas bort igen under synkroniseringsfel:

  • Restgrupper från den misslyckade synkroniseringen visas fortfarande i Keycloak-användargränssnittet.


Dessa restgrupper är inte aktivt knutna till någon AD och kan kräva manuell rensning.

 

Resolution

Ta bort varje grupp individuellt med hjälp av API:et en i taget.

1) Hämta keycloak credentials..

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) Hämta åtkomsttoken (obs: ersätt 4578ZZyT3f med lösenordet från ovanstående utdata):

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) Sök efter grupper med hjälp av api (lista 10 grupper åt gången)

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

4) Ta bort grupper en i taget (ersätt med varje id från steg 3 ovan.

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

Du kan också använda loopskript för att ta bort group_id en i taget.

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

Exempel 

exempel

Versioner som påverkas

PFMP 4.x

Åtgärdat i version

 Framtida versioner av keycloak kommer att ha stöd för massradering av grupper.

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.