PowerFlex 4.x Nie można dodać lub usunąć grupy LDAP

Summary: Po usunięciu AD z PFxM i Keycloak nie może usunąć buforowanych grup LDAP.

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

Scenariusz

Pierwsza próba dodania grupy powoduje błąd:

Failed to add Remote group 
Failed to find request group 

Dodaj użytkownika zdalnego

Nie można dodać grupy zdalnej

 

Po wypełnieniu grup w filtrze LDAP KeyCloak zgodnie z PowerFlex 4.X — Stosowanie filtra wyszukiwania grup LDAP w konsoli administracyjnej PFxM Keycloak | Dell US i synchronizacja z PFxM do dostawcy LDAP, sso.stdout.log pokazuje, że synchronizacja grupy nie działa:

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

Po usunięciu dostawcy LDAP w bazie danych nadal są widoczne grupy (np. poniżej pokazano cztery grupy)

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)

Łączność z ldap z PFMP należy potwierdzić za pomocą następującego polecenia:

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

Przykład:

Ochrona

Wpływ

Nie można dodać lub usunąć grup LDAP.

Cause

Po usunięciu usługi AD:

  • Zaplecze inicjuje usuwanie skojarzonych użytkowników i grup.
  • To usuwanie odbywa się partiami, aby efektywnie zarządzać procesem.


Po ponownym dodaniu usługi AD podczas trwającego usuwania:

  • KeyCloak rozpocznie synchronizację grup z nowo dodanego AD.
  • Jeśli synchronizacja nie powiedzie się z jakiegokolwiek powodu podczas tego procesu, mogą wystąpić problemy.


Jeśli usługa AD zostanie usunięta ponownie podczas niepowodzenia synchronizacji:

  • Grupy pozostałe po nieudanej synchronizacji pozostają widoczne w interfejsie KeyCloak.


Te pozostałe grupy nie są aktywnie powiązane z żadną usługą AD i mogą wymagać ręcznego czyszczenia.

 

Resolution

Usuwaj poszczególne grupy z osobna, korzystając z interfejsu API pojedynczo.

1) Pobierz dane uwierzytelniające 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) Uzyskaj token dostępu (uwaga: zastąp 4578ZZyT3f hasłem z powyższego wyjścia):

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) Sprawdź, czy istnieją grupy korzystające z interfejsu API (wyświetlaj listę 10 grup jednocześnie)

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

4) Usuwaj grupy pojedynczo (zastąp każdy identyfikator z kroku 3 powyżej).

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

Możesz też użyć skryptu pętli, aby usunąć group_id pojedynczo.

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

Przykład 

Przykład:

Wersje, których dotyczy problem

PFMP 4.x

Naprawiono w wersji

 Przyszła wersja Keycloak będzie obsługiwać zbiorcze usuwanie grup.

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.