2016-01-19 4 views
2

В Spring Security OAuth, может ли он потреблять/работать с токенами JWT, которые были сгенерированы пользователем, выполняющим аутентификацию с помощью Keycloak? Ключ-ключ от Keycloak намного шире, но все кажется очень похожим. Я все еще пытаюсь понять разделительную линию, а также то, что похоже или что с этим связано.Spring Security OAuth - Может ли он потреблять токены JWT от Keycloak

В основном я хотел бы пройти аутентификацию отдельно в клиенте REST, а затем использовать токен в заголовке авторизации для вызовов REST для некоторых веб-сервисов. Кажется, в Spring Security OAuth есть некоторые вещи JWT, поэтому мне интересно, могу ли я использовать это вместо материала Keycloak Spring? Есть ли примеры этого? (Я бы хотел использовать проверочные проверки Spring на разных методах моего контроллера)

ответ

4

Вы можете использовать адаптер Spring Keycloak и по-прежнему полагаться на аннотации Spring Security для обеспечения безопасности контроллера. Основная цель адаптера Keycloak Spring упрощает интеграцию с Keycloak для интерактивного входа в систему, а также правильно отображать заявки на токен доступа JWT в контексте аутентификации Spring Security.

Чтение через Spring Security OAuth2 documentation, создается впечатление, что он не совсем готовый из коробки для обработки токенов доступа OpenID Connect JWT. Тем не менее, он настраивается, поэтому его скорее всего можно заставить работать.

Теперь я советую придерживаться адаптера Spring Keycloak, если вы используете Keycloak в качестве вашего OIDC-сервера. Это сэкономит вам время, и оно хорошо протестировано с Keycloak.

+1

В итоге я перешел с адаптером Keycloak для Spring Boot. Наряду с этим я обновил KeycloakUserDetailsAuthenticationProvider с https://github.com/Smartling/smartling-keycloak-extras, чтобы иметь объект UserDetails. Жаль, что вы не можете идти по трассе весна-весна, но там определенно не хватает штук. Баммед, я не стал использовать вещи в магазине. –