Pull to refresh

Comments 12

Спасибо за туториал, давно искал подробные гайды без воды по KeyCloak, добавил в закладки, автору респект

если будет апи для фронта все же нужно будет в jwt делать преобразование со всеми вытекающими

Раз уж мы говорим про микросервисы, то для полноты картины, можно еще добавить OAuth API Gateway, например в лице Gogatekeeper.

Приветствую! Такие компоненты как AG и брокера сообщений оставил за ширмой, чтобы уделить больше времени на KeyCloak. А так каждый разраб, который работал с микрашами, думаю знает об AG

Самая первая ссылка на ознакомление с keycloak не работает(

Не смотря на позитивные упоминания docker, imho слишком много ручной работы по конфигурированию keycloak/realm/ldap/...

Жду продолжения статьи с автоматическим конфигурированием keycloak при старте docker-контейнера https://github.com/adorsys/keycloak-config-cli :)

Пара вопросов по статье:

1) в родительских зависимостях указан адаптер кейклок. Сам кейклок уже давно задепрекейтил все свои адаптеры, оставив по сути сам Auth server, а клиенты должны использоваться либо самописные либо сторонние, в случае с java это преимущественно spring auth2 client. Вообще была занятная история про адаптеры(ссылки легко можно найти): сначала разработчики spring решили выпилить auth server и объявили об этом сообществу. С рекомендацией переходить на сторонние решения вроде кейклок. Сообществу это не понравилось и они объявили протест, в связи с чем разработчики спринга выпустили свой новый authorization server(кажется в конце 2021 г). А уже в феврале 2022 кейклок обязал переходить с их адаптеров на сторонние клиенты. Да, знаю речь про разные части - Auth server и клиент, но по хронологии получается так что кейклок решил отдать поддержку клиентов на откуп сторонним разработчикам, а самим сосредоточиться на сервере. Т.е. если я все понял правильно клиентскую часть в самом приложении нужно переписать на spring auth2 client либо resource server если там будет только авторизация.

2) не хватает ссылочки на гитхаб, чтобы можно былаи понятна общая картина, сейчас отдельные части вроде eureka/sleuth упомянутые в статье оторваны от контекста(либо предполагается вторая часть с углубленным разбором cloud составляющей?)

3) просто вопрос: насколько сложно было бы заменить standalone keycloack на embedded в spring boot ? Возможность иметь сервер авторизации в обычном java приложении, поддерживаемом командой разработки видится заманчивой.

Спасибо.

И поясните пожалуйста механизм работы кейклок с сессиями, упомянутыми в статье. Просто токены доступа(jwt или opaque) все таки никак не связаны с традиционными сессиями. Имеется ввиду что кейклок просто поддерживает состояние клиентов через выданные токены в виде сессий или это именно cookie с которыми клиенты делают запросы?

Внесу уточнения.
spring auth2 client (spring-security-oauth2-client) - для аутентификации к внешним сервисам по OAuth2.0/OIDC.
Keyclok Adapters - для авторизации входящих http-запросов по JWT-токену
Вместо Keyclok Adapters лучше использовать spring-security-oauth2-resource-server из состава Spring Security. Полагаю, что именно появление поддержки OAuth2.0/OIDC в Spring Security дало основание разработчикам Keycloak отказаться от развития Keyclok Adapters для Java.

У Keycloak 19 версии есть проблема -- работает только одна настройка "LDAP User Federation". Я не отслеживал, исправили ли её в последующих версиях. Для устранения этой проблемы мне в своё время пришлось написать плагин к Keycloak https://github.com/tia-ru/keycloak-md-ldap.
Плагин также позволяет интегрировать Keycloak с несколькими независимыми доменами AD (без взаимного доверия)

Sign up to leave a comment.

Articles