Получение токенами доступа текущих пользователей в SPI / Provider Keycloak (при первом входе в систему) - PullRequest
0 голосов
/ 15 сентября 2018

Как получить доступ к токену доступа аутентифицированных пользователей в интерфейсе поставщика услуг Keycloak, когда пользователь только что вошел в систему?

Текущая ситуация: я выполняю предоставление пароля вручную с помощью Apache HttpClient внутриПользовательская федерация пользователя / поставщик хранилища, когда пользователь выполняет вход с именем пользователя и паролем.

Токен доступа пользователя затем используется для вызова внутреннего API с его контекстом аутентификации.Этот вызов API с токеном-носителем пользователей необходим для целей аудита / GDPR, так как пользователь дает многократные согласия при входе в систему.

Я предполагаю, что нет способа получить контекст аутентификации текущих пользователей в провайдере хранилища пользователейпоскольку пользователь еще не аутентифицирован в данный момент, верно?Является ли предоставление пароля правильным способом получения контекста / токена аутентификации пользователя в то время?Другой вариант может заключаться в цепочке SPI, например, использовать SPI аутентификации и перехватывать токен там.Но, похоже, вы не можете перезаписать существующий поток аутентификации.Последний и, возможно, лучший вариант - создать провайдера прослушивателей событий.Но есть ли у меня доступ к токену доступа там?

Я был бы очень признателен за некоторые замечания, потому что все эти усилия кажутся немного странными.

1 Ответ

0 голосов
/ 15 сентября 2018

Другим вариантом (который для меня более логичен) будет использование идентификатора клиента для аутентификации в качестве сервиса (аутентификация клиента) для выполнения аудита.Таким образом, вам даже не нужно, чтобы пользователь проходил аутентификацию на этом этапе.Я рассматриваю это как лучшее решение, так как, помимо того, что я сказал, одитинг на самом деле является рутинной работой, связанной с системой.Если вы позволите любому пользователю выполнять аудит, он может написать некоторый код с допустимым токеном, чтобы выполнить массивный / поддельный аудит самостоятельно.

Более разумно оставить это конкретному клиенту с конкретной ролью и запросить эту роль для процесса аудита.

...