Интеграция Spring Boot с Keycloak с использованием типов доступа только publi c и только на предъявителя - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть два приложения Spring Boot, давайте назовем их APP1 и APP2.

У меня есть один экземпляр Keycloak с одной областью под названием MyRealm.

В MyRealm я создал два клиента, APP1 -Client и APP2-Client, оба из Access Type publi c.

Я создал соответствующие роли.

Оба моих приложения Spring Boot были настроены для использования Keycloak и Spring Security.

В каждом из моих файлов application.properties для каждого приложения Spring Boot у меня есть:

keycloak.auth-server-url=http://localhost:8080/auth
keycloak.realm=MyRealm
keycloak.resource=APP[1/2]-Client
keycloak.public-client=true
keycloak.enabled=true
keycloak.principal-attribute=preferred_username

Я настроил класс WebSecurityConfig для расширения KeycloakWebSecurityConfigurerAdapter.

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

Но Теперь мой вопрос: что если я хочу, чтобы я как пользователь имел доступ к обоим приложениям, как я сейчас делаю через браузер, но я также хочу, чтобы мои два приложения (APP1 и APP2), чтобы общаться друг с другом в фоновом режиме, возможно, передавая данные по запланированному маршруту, без участия какого-либо пользователя. Как теперь я могу заставить их общаться друг с другом, используя конечные точки REST, защищенные Keycloak, но также заставлять пользователей проходить аутентификацию, используя свое имя пользователя и пароль при входе через браузер?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...