Получите идентификатор пользователя с помощью настраиваемого Admin REST API в Keycloak

В системе, которую я разрабатываю сейчас, я хочу получить токен идентификатора пользователя на моем сервере Keycloak, используя REST API администратора Keycloak, не зная пароля пользователя (т. Е. Используя только пароль пользователя с правами администратора).

То есть я хочу иметь административный API, такой как GET /{realm}/users/{id}/id-token.

Возможно ли это реализовать?

(В документе Keycloak говорится, что можно реализовать настраиваемые конечные точки API (https://www.keycloak.org/docs/latest/server_development/index.html#_extensions_rest), но я не уверен, смогу ли я добавить желаемую функцию.)


person compos    schedule 05.10.2020    source источник
comment
Может не соответствовать вашему варианту использования, но вы можете проверить функцию учетной записи службы (поток учетных данных клиента). Вы можете назначить роли сервисному аккаунту (вам нужно включить его для клиента, и он должен быть конфиденциального типа). Затем на вашем сервере, вместо того, чтобы олицетворять пользователя, вы можете получить учетные данные учетной записи службы, используя идентификатор клиента и секрет клиента, и с этими учетными данными (токенами) вы можете затем выполнить требуемый вызов. Таким образом, манипулирование данными выполняет служба, а не олицетворение пользователя.   -  person Miha Jamsek    schedule 23.05.2021


Ответы (1)


Звучит как очень опасная функция (администратор IDP может выдать себя за любого пользователя из своего пула пользователей IDP). Но вам все еще не хватает одного входа - клиента. Каждый клиент может генерировать разные токены.

Я бы сказал, что вам могут понадобиться:

1.) Пример функции токена доступа (не ID токена!)

Проверить GET /{realm}/clients/{id}/evaluate-scopes/generate-example-access-token конечную точку

https://www.keycloak.org/docs-api/11.0/rest-api/index.html

2.) Функция выдачи себя за другое лицо

https://www.keycloak.org/docs/latest/server_admin/#impersonation < / а>

3.) Реализуйте его самостоятельно в Keycloak, чтобы он точно соответствовал вашим потребностям.

person Jan Garaj    schedule 06.10.2020