Мой первый вопрос - как задать себе вопрос :-), потому что я немного растерялся.
Моя идея заключается в следующем:
Наличие нескольких микроуслуг (приложений с весенней загрузкой), которые могутвзаимодействовать друг с другом, а также могут быть вызваны извне напрямую.Поэтому я думаю, что было бы неплохо их обезопасить.Идея для первого шага, чтобы они вызывали друг друга, заключается в использовании аутентификации клиента.Поэтому я создал область и несколько клиентских конфигураций и добавил конфигурацию клиента для каждой конечной точки отдыха в шаблон отдыха как 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 Redirect .. Итак, мой вопрос ...
Что-то не так с самой идеей?Или как с этим бороться?Есть ли лучшие практики?
Будет ли лучше использовать, например, Ingress Controller, мир Kubernetes, для аутентификации из внешнего мира?
Заранее спасибо