Переменные среды для взаимодействия с Kafka¶
Для настройки аутентификации и параметров подключения Kafka служат переменные среды:
KAFKA_AUTH – определяет режим аутентификации Kafka при подключении к брокеру. Возможные значения:
-
NONE – аутентификация отключена, используется по умолчанию. При выборе данного значения Kafka-брокер использует настройку «security.protocol=PLAINTEXT».
-
OAUTH2 – аутентификация по протоколу SASL_PLAINTEXT с механизмом OAUTHBEARER. При выборе данного значения Kafka-брокер использует настройки «security.protocol=SASL_PLAINTEXT» и «sasl.mechanism=OAUTHBEARER».
-
PLAIN – аутентификация по протоколу SASL_PLAINTEXT с механизмом PLAIN. При выборе данного значения Kafka-брокер использует настройки «security.protocol=SASL_PLAINTEXT» и «sasl.mechanism=PLAIN».
KAFKA_KEYCLOAK_URL – URL сервера Keycloak, используемого для аутентификации Kafka. Если переменная не указана, используется значение переменной «KEYCLOAK_URL».
KAFKA_KEYCLOAK_REALM – наименование Realm в Keycloak, используемого для аутентификации Kafka. Если переменная не указана, используется значение переменной «KEYCLOAK_REALM».
KAFKA_KEYCLOAK_CLIENT_ID – идентификатор клиента в Keycloak, используемый для аутентификации по механизму OAUTHBEARER.
KAFKA_KEYCLOAK_CLIENT_SECRET – секретный ключ клиента в Keycloak, используемый для аутентификации по механизму OAUTHBEARER.
KAFKA_LOGIN – имя пользователя для аутентификации по механизму PLAIN.
KAFKA_PASSWORD – пароль пользователя для аутентификации по механизму PLAIN.
Для выбора способов аутентификации служат настройки сервисов Kafka:
Настройки переменных для работы сервисов Kafka без аутентификации. Указываются настройкой «KAFKA_AUTH: NONE».
Настройки переменных среды для работы с Kafka-брокером по протоколу SASL_PLAINTEXT и механизму OAUTHBEARER. Указываются настройками:
-
KAFKA_AUTH: OAUTH2
-
KAFKA_KEYCLOAK_URL: <указать URL Keycloak для работы с Kafka> – если переменная не задана, используется значение переменной «KEYCLOAK_URL».
-
KAFKA_KEYCLOAK_REALM: <указать Realm в Keycloak> – если переменная не задана, используется значение переменной «KEYCLOAK_REALM».
-
KAFKA_KEYCLOAK_CLIENT_ID: <указать идентификатор клиента Keycloak> – если переменная не задана, используется значение переменной «KEYCLOAK_CLIENT_ID». Если оно также не указано, используется значение по умолчанию «dh-backend».
-
KAFKA_KEYCLOAK_CLIENT_SECRET: <указать секретный ключ клиента Keycloak> – если переменная не задана, используется значение переменной «KEYCLOAK_CLIENT_SECRET».
Настройки переменных среды для работы с Kafka-брокером по протоколу SASL_PLAINTEXT и механизму PLAIN:
-
KAFKA_AUTH: PLAIN
-
KAFKA_LOGIN: <указать имя пользователя> – если переменная не задана, используется значение по умолчанию «admin».
-
KAFKA_PASSWORD: <указать пароль пользователя> – если переменная не задана, используется значение по умолчанию «admin-secret».
Строго рекомендуется изменять настройки аутентификации Kafka только через переменные окружения.
Если значение базовых параметров:
-
spring.security.oauth2.client.registration.backend.clientSecret;
-
spring.security.oauth2.client.registration.backend.clientId;
-
docshouse.starter.kafka.sasl.oauthbearer.client-id;
-
docshouse.starter.kafka.sasl.oauthbearer.client-secret.
будет изменено через сервис конфигураций, после перезагрузки сервиса их значение используется в приоритете для соответствующих настроек.
Для корректной работы системы с брокером Kafka необходимо указать настройку «auto.create.topics.enable=true», позволяющую сервисам системы автоматически создавать топики, если при обращении они отсутствуют.
Также необходимо согласовать HTTP-протокол подключения к Keycloak между Kafka-брокером и клиентами. Если брокер использует HTTPS (https://), а Java-сервис указывает HTTP (http://), соединение будет отклонено.