Spring Security OAuth - может ли он потреблять токены JWT из Keycloak

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

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


person jeremy simon    schedule 19.01.2016    source источник


Ответы (1)


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

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

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

person Scott    schedule 10.02.2016
comment
В итоге я выбрал адаптер Keycloak для Spring Boot. Наряду с этим я обновил KeycloakUserDetailsAuthenticationProvider с github.com/Smartling/smartling-keycloak-extras, чтобы иметь объект UserDetails. Жалко, что вы не можете пойти по весеннему маршруту, но кое-чего определенно не хватает. Обиделся, что я не смог воспользоваться вещами из магазина токенов. - person jeremy simon; 07.03.2016
comment
Для тех, кто попадает сюда, я предлагаю вам ознакомиться с выпуском Spring Security 5.1+, который поставляется с OIDC с использованием JWT. Ссылка здесь для последней версии (5.2.0.RC1): docs.spring.io/spring-security/site/docs/5.2.0.RC1/reference/ - person jzheaux; 13.09.2019