Можем ли мы обновить пользователя в Keycloak на основе любых других уникальных полей, кроме id? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь обновить информацию о пользователях в Keycloak, я смог обновить пользователя, используя идентификатор, указанный в Keycloak.

Я попытался с этой конечной точкой, и я смог обновить с помощью идентификатора

 PUT /admin/realms/{realm}/users/{id}

Есть ли способ, с помощью которого я могу обновить того же пользователя, используя идентификатор электронной почты, так как это такжеуникальное поле?я попытался заменить {id} на email-идентификатор пользователя, но это дало мне ошибку.Есть ли способ, с помощью которого я могу обновить пользователя, используя email-идентификатор или любое другое уникальное поле пользователя

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Вы не можете обновить пользователя с помощью email-идентификатора, опция заключается в том, чтобы установить email-идентификатор для имени пользователя и выполнять поиск с использованием следующего API.Найдя пользователя, обновите его.

GET /admin/realms/{realm}/users 

Также обратите внимание, что операция поиска не является точным поиском совпадения, поиск по chris@example.com вернет оба значения amy.chris@example.com, chris@example.com.

0 голосов
/ 01 февраля 2019

На самом деле эта функция недоступна на Keycloak.Вы можете проверить документацию REST API здесь .Вы всегда можете обойти всех пользователей, проанализировать их в поисках нужной электронной почты, извлечь идентификатор и, наконец, использовать его для обновления своих данных.

  1. GET /admin/realms/{realm}/users/
  2. Вы получите объект JSON, содержащий всех пользователей, проанализируйте его с помощью Gson или другой библиотеки синтаксического анализа JSON.Затем, если вы проанализировали его в классе с именем User, используйте его метод #getId().
  3. PUT /admin/realms/{realm}/users/{id}

Вы можете взглянуть на Keycloak's UserRepresentation чтобы узнать, какие атрибуты понадобятся вашему объекту User.

Если вы не знаете, как использовать Gson, прочитайте их документацию или выполните быстрый поиск в Google.

PS : Gson чувствителен к регистру, поэтому ваши атрибуты должны иметьте же имена, что и в объекте JSON.

...