Keycloak для обеспечения микросервиса для вызова микросервиса - PullRequest
1 голос
/ 08 апреля 2019

Мой первый вопрос - как задать себе вопрос :-), потому что я немного растерялся.

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

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

Заранее спасибо

...