Да, это возможно.
Требуется несколько шагов, и я боюсь, я сомневаюсь, что могу быть более ясным, чем официальные документы Kafka о настройке SASL .Я бы порекомендовал еще раз взглянуть на него, и если есть раздел, который вы не уверены, спросите об этом явно.
В любом случае, я дам вам несколько советов по SASL PLAIN (вероятно, самый простой в настройке)
На стороне брокера, следуя этим документам :
Создайте файл JAAS с разделом KafkaServer
:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret"
user_admin="admin-secret"
user_alice="alice-secret";
};
Задайте свойство JVM java.security.auth.login.config
, чтобы файл JAAS был выбран
Обновление server.properties
для включения настроек SASL.Например:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
Я рекомендую начать без SSL, но имейте в виду, что если вы в конечном итоге используете SASL PLAIN, вы должны включить SSL, иначе весь трафик, включая аутентификацию, будет в виде открытого текста!
На стороне клиента, следуя этим документам :
Обновите свойства клиента, включив в них:
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="alice" password="alice-secret";
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
Очевидно, что в работе не следует полагаться на жестко закодированных пользователей в файле JAAS брокера.В Kafka docs объясняется, как вместо этого правильно предоставить реализацию, предоставляющую идентификаторы пользователей.