Keycloak получить пароль пользователя

В моем проекте мне нужно получить текущий пароль пользователя из Rest API.

Я искал финальную документацию keycloak 4.8.3, но не нашел. С пользователем администратора я могу изменить пароль, не зная текущего пароля. Но мой зарегистрированный пользователь может быть администратором или нет. Я обнаружил, что Keycloak не дает мне на это разрешения из соображений безопасности. В заключение, есть ли способ активировать эти настройки или есть способ получить пароль с помощью Rest API? Спасибо.


person Neo    schedule 03.03.2021    source источник


Ответы (1)


Через Rest API нельзя получить пароль по понятным причинам. В идеале, в безопасных условиях, даже если вы являетесь администратором, у него не должно быть доступа к паролям пользователей.

Из комментариев, которые вы написали:

Я мог бы использовать такой метод, как логическое isPasswordCorrect (имя пользователя, пароль)

Подход состоит в том, чтобы создать клиента в вашем Realm следующим образом:

  • Иди в свое Царство;
  • Клиенты;
  • Создать клиента;
  • Сделайте Access Type общедоступным;
  • Установите Direct Access Grants Enabled в положение ON;
  • Сохранить;

Теперь запросите у вновь созданного клиента токен от имени пользователя, который вы хотите проверить, правильный ли пароль:

введите описание изображения здесь

Как видите, конечная точка:

<KEYCLOAK_HOST>/auth/realms/<REALM_NAME/protocol/openid-connect/token

а тело:

client_id : <The client ID of the newly create client>
username : <The username>
password : <The password to be tested>
grant_type : password

Если пароль правильный, вы получите объект токена, в противном случае вы получите следующий ответ:

{
    "error": "invalid_grant",
    "error_description": "Invalid user credentials"
}
person dreamcrash    schedule 04.03.2021