Скрытый ключ для защиты вызова микросервиса от микросервиса

#spring-boot #oauth-2.0 #microservices #openid-connect #keycloak

#spring-boot #oauth-2.0 #микросервисы #OpenID-подключение #скрытый ключ

Вопрос:

мой первый вопрос — как задать себе 🙂 потому что я немного потерялся.

Моя идея заключается в следующем:

Наличие нескольких микросервисов (приложений spring boot), которые могут взаимодействовать друг с другом, а также могут вызываться напрямую извне. Поэтому я думаю, что было бы неплохо защитить их. Идея первого шага по их вызову друг другу заключается в использовании аутентификации клиента. Итак, я создал область и несколько конфигураций клиента и добавил конфигурацию клиента для каждой конечной точки rest в шаблон rest как ClientCredentials

 class MyRestTemplate(
        details: ClientCredentialsResourceDetails,
        private val baseUrl: String
) : OAuth2RestTemplate(details)
  

и наличие поставщика

 @Bean
    fun restTemplate(): MyRestTemplate{
        return MyRestTemplate(details(), config.baseUrl)
    }


    private fun details(): ClientCredentialsResourceDetails {
        val details = ClientCredentialsResourceDetails()
        details.grantType = "client_credentials"
        details.accessTokenUri = "${config.accessTokenUri}"

        details.clientId = config.clientId
        details.clientSecret = config.clientSecret

        return details
    }
  

Но когда я вызываю MS A из MS B, я получаю перенаправление 302.. Итак, мой вопрос…

Что-то не так с самой идеей? Или как с этим бороться? Существуют ли какие-либо рекомендации?

Было бы лучшей идеей использовать, например, контроллер входа в мир Kubernetes для выполнения аутентификации из внешнего мира?

Спасибо заранее

Комментарии:

1. Вы нашли решение этой проблемы? Вы все еще полагаетесь только на KeyCloack?

2. Да, я все еще полагаюсь на keycloak. Но при переходе на Micronaut настройка намного проще.

3. piotrminkowski.com/2020/09/21/…