Настройте связь между несколькими серверами авторизации OAuth2 и одним сервером ресурсов. - PullRequest
0 голосов
/ 21 мая 2019

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

Безопасность Spring (с использованием также и стартера безопасности Okta) позволяет мне только устанавливатьURI одного эмитента.

Мне удалось найти решение, которое работает , но я не уверен, что это лучший метод / стандартный способ сделать это.В приведенном ниже фрагменте кода я явно настроил ресурсы с помощью Java Config от Spring для простоты.

@Bean
public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
  http
      .authorizeExchange()
      .pathMatchers("/api/protected/by/authserver1")
      .and()
      .oauth2ResourceServer()
      .jwt()
          .jwtDecoder(ReactiveJwtDecoders.fromOidcIssuerLocation("https://authserver1")
      .and()
      .and()
      .authorizeExchange()
      .pathMatchers("/api/protected/by/authserver2")
      .and()
      .oauth2ResourceServer()
      .jwt()
          .jwtDecoder(ReactiveJwtDecoders.fromOidcIssuerLocation("https://authserver2");

  return http.build()
}

Кажется, это работает точно так, как задумано, токены создаются из одного сервера аутентификации и используются на конечной точке для проверки другогополучить 401. Когда отчеканенные токены используются на их соответствующих конечных точках, они успешно проверяются.

Это выглядит немного забавно, когда .and() перезванивает спина к спине, у меня сложилось впечатление, что эти цепочечные вызовыпросто создать несколько веб-фильтров под капотом?В любом случае, является ли это стандартным способом включения этой функции в приложении Spring с Spring Security и WebFlux?

Кроме того, я столкнулся с этим ТАКИМ вопросом, но я не знаю, что яВы сможете настроить «поставщика федерации» в контексте этого проекта.Однако, если этот подход - лучшая практика, я хотел бы знать.Тем не менее, я думаю, что в некоторой степени это происходит на уровне Okta с режимом посредника федерации в политиках доступа к серверу auth ...?

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