Пользовательский аутентификатор для области OpenID Keycloak

В настоящее время я оцениваю keycloak в качестве центрального диспетчера идентификации для нескольких серверных приложений с несколькими службами REST (Resteasy / Wildfly).

После большого количества проб и ошибок и чтения документа мне удалось успешно сделать вход openid connect в мою пользовательскую область keycloakrealm (аналог этого сообщения http://blog.keycloak.org/2015/10/Getting-started-with-keycloak-securing.html)

Я вижу токен доступа + id_token, поступающий в ответ, и могу делать запросы к службам REST, передавая эти токены.

Однако я могу аутентифицироваться только с использованием учетных данных пользователей, определенных в самом keycloak. Однако в нашем реальном случае пользователи находятся в SAP и неизвестны keycloak.

Однако у нас есть библиотека для аутентификации этих пользователей через соединитель SAPJCO.

Кто-нибудь может сказать мне, как настроить keycloak для использования модуля «пользовательской аутентификации» для фактической аутентификации?

Реализует пользовательский SPI аутентификатора (https://keycloak.gitbooks.io/server-developer-guide/content/v/2.1/topics/auth-spi.html) путь? Если нет, то какое решение?

Надеюсь, вы, ребята, сможете помочь!

Reagrds,

Kim Zeevaarders Нидерланды


person Kim Zeevaarders    schedule 05.08.2016    source источник


Ответы (1)


Если вы можете получить доступ к сведениям о пользователях SAP через соединитель SAPJCO, вы можете написать собственный поставщик федерации. Приведенный пример является элементарным, но он дает основную идею и зависимости от maven.

Вкратце, вам нужно будет расширить org.keycloak.models.UserFederationProvider и предоставить методы для получения сведений о пользователе, проверки учетных данных и поиска по атрибутам. В вашем случае вы должны использовать свой коннектор SAPJCO для выполнения каждой из этих функций в отношении существующей базы пользователей.

Обновление 30 мая 2018 г.

SPI пользовательской федерации был заменен новым User Storage SPI в версии 2.5. Примечания по миграции доступны здесь

person shonky linux user    schedule 08.08.2016
comment
Спасибо за совет. Мне удалось реализовать это так, как вы предложили, и он отлично работает! Теперь о второй части: как мне точно передать учетные данные в keycloak напрямую изнутри вызова REST? В шапке авторизации? - person Kim Zeevaarders; 09.08.2016
comment
Срок действия ссылки на поставщика федерации истек. - person Taha Rehman Siddiqui; 29.05.2018
comment
@TahaRehmanSiddiqui Я обновил ссылку, чтобы указать на версию 2.4. Поставщик федерации был объявлен устаревшим, а затем удален в версии 2.5 и заменен пользовательским хранилищем SPI. - person shonky linux user; 30.05.2018