#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 настройка намного проще.