Каков наилучший способ реализации SSO-аутентификации с использованием Spring Boot и Keycloak? - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть приложение с компанией и пользователем microservices (весенняя загрузка), оба общаются друг с другом через интерфейс OpenFeign, а для управления идентификацией и доступом я использую Keycloak.

Первый вопрос: что является хорошим способом управления пользователями, это использование пользователя микросервиса или просто удовлетворение Keycloak

Второй вопрос: Я пытался защитить обе службы с помощью адаптера Keycloak, но когда Я отправляю запрос, который использует OpenFeign для связи с другим, я получаю неавторизованную ошибку, поэтому нужно ли защищать службу шлюза для реализации аутентификации SSO?

Свойства службы пользователя:

spring:
  security:
    oauth2:
      resourceserver:
        jwt:
          jwk-set-uri: http://192.168.1.15:8080/auth/realms/myrealm/protocol/openid-connect/certs

keycloak.auth-server-url=http://192.168.1.15:8080/auth/
keycloak.realm=myrealm
keycloak.resource=user-service
keycloak.public-client=false
keycloak.bearer-only=true

служба пользователя WebSecurityConfig:

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors()
                .disable()
                .sessionManagement()
                .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
                .and()
                .authorizeRequests()
                .anyRequest()
                .authenticated()
                .and()
                .oauth2ResourceServer()
                .jwt();
    }
}

свойства службы компании: такие же, как свойства службы пользователя

...