Keycloak Admin API: як аутентифікувати клієнта, який має JWT від Keycloak? У мене є просте налаштування, де сервер має Keycloak (23.0.1), та кілька додатків. Keycloak та додатки всі знаходяться за оберненим проксі за допомогою Apache, тому Apache (mod_auth_openidc) є клієнтом/RP, а місцевий Keycloak є OP.
Один з додатків потрібно здійснювати запити API до Keycloak, щоб обробляти операції користувача (додавання користувачів, встановлення претензій тощо). Для цього я маю клієнта облікового запису служби на Keycloak, і додаток робить запити Curl до Keycloak, використовуючи секрет клієнта.
Це працює, але я відчуваю, що я зробив це неправильно. Додаток має записати секрет клієнта, тому він вважається небезпечним, і я б радше використовував JWT, якщо це можливо. У такому потоку:
Як це зробити, використовуючи kcadm.sh або curl? Я не можу знайти це в документації (тут або в специфікації API). Здається, що мені потрібно налаштувати сховище ключів, щоб Keycloak міг аутентифікувати вхідний підписаний JWT, але мені просто потрібно, щоб Keycloak аутентифікував власний підписаний JWT, тому в цій системі немає сховища ключів. Це має сенс? Якщо я просто запустю kcadm.sh і передам JWT з параметром –secret, я отримую помилку Параметр client_assertion_type відсутній.