Подтвердить что ты не робот

Есть ли вызов API для изменения пароля пользователя на keycloak?

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

4b9b3361

Ответ 1

Вы можете использовать PUT/auth/admin/realms/{realm}/users/{id}/reset-password

  • {id} - это идентификатор пользователя в keycloak (не логин)

Вот образец тела.

{ "type": "password", "temporary": false, "value": "my-new-password" }

Ответ 2

Вместо того, чтобы указывать новый пароль вручную, лучше использовать

PUT/auth/admin/realms/{realm}/users/{id}/execute-actions-email

вызов администратора с "UPDATE_PASSWORD" в качестве необходимого действия. Это заставляет Keycloak отправлять пользователю электронное письмо с волшебной ссылкой для установки нового пароля.

Примечание: {id} - это идентификатор пользователя в keycloak (не логин)

Ответ 3

Нет, протоколы OAuth и OpenID Connect не определяют такую функцию, и Keycloak также не имеет возможности сделать это от имени пользователя. Существует API-интерфейс администратора сервера, который позволяет изменить пароль пользователя или сбросить его, но вы не можете вызвать его из графического интерфейса. Но Keycloak предоставляет своего рода "страницу моей учетной записи" по URL- http://localhost:8080/auth/realms/your-realm/account/ например http://localhost:8080/auth/realms/your-realm/account/ - замените часть URL-адреса your-realm и просто перенаправьте пользователя на нее. Keucloak My User Account Service: change password

В документации это называется User Account Service

Также, если вы используете автообнаружение, вы можете получить URL-адрес, прочитав account-service из JSON по адресу http://localhost:8080/auth/realms/your-realm