PowerFlex 4.x Nelze přidat nebo odebrat skupinu LDAP

Summary: Po odebrání služby AD z nástroje PFxM a nástroji Keycloak nelze odebrat skupiny LDAP uložené v mezipaměti.

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énář

Počáteční pokus o přidání skupiny má za následek chybu:

Failed to add Remote group 
Failed to find request group 

Přidat vzdáleného uživatele

Přidání vzdálené skupiny se nezdařilo.

 

Po vyplnění skupin ve filtru LDAP klávesnice podle PowerFlex 4.X – Jak použít filtr vyhledávání skupin LDAP v konzoli správce PFxM Keycloak | Dell US a synchronizaci z PFxM s poskytovatelem LDAP, sso.stdout.log ukazuje, že synchronizace skupiny nefunguje:

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 odebrání poskytovatele LDAP se v databázi stále zobrazují skupiny (např. níže jsou zobrazeny čtyři skupiny)

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)

Připojení k protokolu LDAP z PFMP je třeba potvrdit následujícím příkazem:

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

Příklad:

Klávesový plášť

Důsledky

Nelze přidat nebo odebrat skupiny LDAP.

Cause

Když je služba AD odebrána:

  • Back-end iniciuje odstranění přidružených uživatelů a skupin.
  • K tomuto odstranění dochází v dávkách, aby bylo možné proces efektivně spravovat.


Kdy je služba AD znovu přidána během probíhajícího odstraňování:

  • Keycloak začne synchronizovat skupiny z nově přidané služby AD.
  • Pokud během tohoto procesu synchronizace z jakéhokoli důvodu selže, může dojít k problémům.


Pokud se služba AD během selhání synchronizace znovu odebere:

  • Zbytkové skupiny z neúspěšné synchronizace zůstávají viditelné v uživatelském rozhraní Keycloak.


Tyto zbytkové skupiny nejsou aktivně svázané s žádnou službou AD a můžou vyžadovat ruční vyčištění.

 

Resolution

Odstraňte každou skupinu jednotlivě pomocí rozhraní API jednu po druhé.

1) Načtěte přihlašovací údaje 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) Získejte přístupový token (poznámka: 4578ZZyT3f nahraďte heslem z výše uvedeného výstupu):

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) Zkontrolujte skupiny pomocí api (seznam 10 skupin najednou)

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

4) Odstraňujte skupiny jednu po druhé (nahraďte je každým ID z kroku 3 výše.

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

Případně můžete pomocí skriptu smyčky odstranit group_id jeden po druhém.

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

Příklad 

Příklad:

Dotčené verze

PFMP 4.x

Opraveno ve verzi

 Budoucí verze keycloak bude podporovat hromadné mazání skupin.

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.