Развертывание в облачной среде#
Для работы kafka-ott-signature-interceptor необходимо подключение к OTT-сервису для выпуска токенов и сертификаты для подключения к OTT-сервису.
Предусловия#
В зависимости от способа подключения к OTT-серверу существует несколько вариантов развертывания в облачной среде:
Подключение напрямую с получением сертификатов из секретов K8S/OS.
Подключение напрямую с получением сертификатов с помощью vault-sidecar.
Подключение через egress-gateway.
Последовательность выполнения#
Подключение напрямую с получением сертификатов из секретов K8S/OS#
Перехватчик подключается к OTT-серверу напрямую по протоколу HTTPs, используя секреты напрямую из образа или secret K8S/OS.

Можно использовать сертификаты в форматах JKS или pem. Конфигурация перехватчика ничем не отличается от примеров в разделе Kafka-ott-signature-interceptor.
Подключение напрямую с получением сертификатов с помощью vault-sidecar#
Перехватчик подключается к OTT-серверу напрямую по протоколу HTTPS, используя секреты, полученные из vault c помощью vault-sidecar.

Рекомендуется использовать сертификаты в формате pem. Пример настройки подключения к OTT-сервису с использованием pem-сертификатов есть в разделе Kafka-ott-signature-interceptor («Пример конфигурации хранилища типа pem»).
Также подробнее о получения сертификата через Vault в документации на компонент EVTA в документе «Руководство по установке» в разделе Настройки интеграции.
Подключение через egress-gateway#
Перехватчик подключается к OTT-серверу через egress-sidecar по протоколу HTTP, на egress настроен tls termination.

В параметре interceptor.signature.ott.service.url требуется указать адрес до ОТТ-сервера с протоколом http.
Для корректной работы интерсептора необходимы сертификаты, которые используются на прикладном уровне для подписи/валидации токенов. Сертификаты необходимо подкладывать в контейнер прикладного приложения, несмотря на то, что терминация трафика до ОТТ-сервера происходит на граничном прокси (egress-gateway).
Пример настройки:
interceptor.signature.ott.service.url: http://ott-service.sbt
interceptor.classes: ru.sbt.ss.kafka.ott.OttSignatureConsumerInterceptor
interceptor.signature.ott.service.cert.alias: ott-service
interceptor.signature.ott.certstore.type: JKS
interceptor.signature.ott.certstore.path: ssl/sertstore.p12
interceptor.signature.ott.trust.store.path: ssl/truststore.p12
interceptor.signature.ott.certstore.pwd: password
interceptor.signature.ott.certstore.private.key.pwd: password
interceptor.signature.ott.trust.store.pwd: password
interceptor.signature.ott.module.id: ott-test-moduleA
interceptor.signature.ott.authz.realm: synapse
Также указываются и другие параметры в зависимости от продюсера/консьюмера.
Однако для корректного подключения необходимо обязательно настроить TLS для ОТТ-клиента, так как ОТТ-клиент проверяет наличие хранилищ секретов, даже если отключить TLS. Ssl-context при этом не создается, хранилища секретов использоваться не будут.
Также следует настроить Istio (ServiceEntry, VirtualService, DestinationRule и т.д) до серверов ОТТ, где для них в DestionationRule указать сертификаты, полученные от ОТТ.
Результат#
Выполнено подключение интерсептора Kafka-ott-signature-interceptor в облачной среде.