PowerFlex 4.x Не вдається додати або видалити групу LDAP

Summary: Після видалення AD з PFxM, і Keycloak не може видалити кешовані групи 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

Сценарій

Початкова спроба додати групу призводить до помилки:

Failed to add Remote group 
Failed to find request group 

Додати віддаленого користувача

не вдалося додати віддалену групу

 

Після заповнення груп у фільтрі ldap keycloak, відповідно до PowerFlex 4.X - Як застосувати фільтр пошуку груп LDAP у консолі адміністратора PFxM Keycloak | Dell US і синхронізація з PFxM з провайдером LDAP, sso.stdout.log показує, що групова синхронізація не працює:

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

Після видалення постачальника LDAP база даних все ще показує групи (наприклад, нижче показано чотири групи)

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)

Підключення до ldap з PFMP має бути підтверджено такою командою:

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

Приклад:

Ключовий плащ

Вплив

Не вдається додати або видалити групи LDAP.

Cause

Коли АД видалено:

  • Модуль ініціює видалення пов'язаних користувачів і груп.
  • Це видалення відбувається пакетами для ефективного керування процесом.


Якщо AD додається повторно під час поточного видалення:

  • Keycloak починає синхронізацію груп з нещодавно доданого AD.
  • Якщо під час цього процесу з будь-якої причини синхронізація не вдається, можуть виникнути проблеми.


Якщо під час помилки синхронізації AD знову видалено:

  • Залишкові групи після невдалої синхронізації залишаються видимими в інтерфейсі Keycloak.


Ці залишкові групи не пов'язані активно з будь-яким АД і можуть вимагати ручного очищення.

 

Resolution

Видаляйте кожну групу окремо за допомогою API по черзі.

1) Отримати облікові дані 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) Отримайте токен доступу (примітка: замініть 4578ZZyT3f паролем з вищевказаного виводу):

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) Перевірте наявність груп за допомогою api (напишіть 10 груп за раз)

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

4) Видаляйте групи по одній (замінюйте кожним id з кроку 3 вище).

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

Крім того, використовуйте циклічний скрипт, щоб видаляти по одному group_id.

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

Приклад 

приклад

Версії, на які це вплинуло

PFMP 4.x

Виправлено у версії

 Майбутня версія keycloak підтримуватиме масове видалення груп.

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.