keycloak - как получить текущий пароль пользователя или сохранить зашифрованные данные?

Приложение java ee (развернутое в wildfly) хранит конфиденциальные данные, такие как ключи доступа и т. д., для разных пользователей в БД. Для расшифровки этих данных нужен мастер-пароль, связанный с текущим пользователем. Для этого используется пароль, вводимый пользователем при входе в приложение.

Сейчас я рассматриваю возможность использования keycloak для защиты этого приложения. Но похоже, что нет способа получить пароль для пользователя, вошедшего в систему с помощью keycloak (поскольку он работает с токенами)? Просить пользователя ввести пароль еще раз в приложении нельзя.

Вопрос в том, можно ли настроить keycloak для предоставления постоянного (секретного) значения в токене для текущего пользователя, которое не будет храниться в незашифрованном виде в базе данных keycloak?


person Oleg Khaschansky    schedule 09.04.2016    source источник
comment
Keycloak, скорее всего, хранит пароли в виде одностороннего хеша. Практически невозможно расшифровать его обратно в исходный пароль.   -  person Steve C    schedule 09.04.2016
comment
Picketlink, например, позволяет получить доступ к текущим учетным данным пользователя. Поскольку я собирался запускать keycloak и приложение в одном контейнере, я был бы счастлив, если бы keycloak мог вернуть пароль приложению.   -  person Oleg Khaschansky    schedule 09.04.2016
comment
Вы изучали утверждения с Keycloak? keycloak.github.io/docs/userguide/saml- client-adapter/html/ stackoverflow.com/a/32890003 Вы можете сохранить ключ шифрования для каждого пользователя. Что касается шифрования ключа шифрования, возможно, потребуется изучить шифрование СУБД, чтобы справиться с этим сценарием.   -  person pygator    schedule 10.04.2016
comment
Спасибо за ваше предложение, не могли бы вы немного уточнить? Я понимаю, что в KeycloakPrincipal можно добавить любой пользовательский атрибут. Как здесь могут помочь утверждения SAML? Но вопрос в том, могут ли эти атрибуты быть зашифрованы в базе данных keycloak. А так как БД keycloak будет находиться там же, где и основная БД - она ​​требует такого же подхода к шифрованию - она ​​должна быть зашифрована паролями пользователей. Я не совсем уверен, можно ли настроить keycloak для этого.   -  person Oleg Khaschansky    schedule 11.04.2016


Ответы (1)


Похоже, что можно получить пароль или данные, полученные из него, с помощью пользовательского Аутентификатор API. Я не уверен на 100%, что это работает, но это кажется возможным ответом.

person Oleg Khaschansky    schedule 11.04.2016
comment
Нет. Мы этого не пробовали. - person Oleg Khaschansky; 17.05.2018