У меня возникает следующая проблема:
Я использую Kafka с 3-мя брокерами и просто настраиваю аутентификацию и авторизацию, проблема в том, что после активации авторизации SASL_SSL я могу подключиться к серверу без хранилище доверенных сертификатов или хранилище ключей на клиенте, используя только конфигурацию JAAS с именем пользователя и паролем. Таким образом, авторизация, кажется, хорошо, но это происходит без аутентификации. Может кто-нибудь, пожалуйста, скажите мне, что я делаю не так или как это исправить? У меня также есть такая же конфигурация в другой среде с одним брокером, и аутентификация и авторизация там работают, поэтому я в растерянности.
Моя конфигурация в server.properties:
############################# Server Basics #############################
broker.id=2
############################# Socket Server Settings #############################
listeners=INTERNAL://hostname2:9092,EXTERNAL://hostname2:9093,SASL_SSL://hostname2:9094
advertised.listeners=INTERNAL://hostname2:9092,EXTERNAL://hostname2:9093,SASL_SSL://hostname2:9094
inter.broker.listener.name=INTERNAL
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT,SASL_SSL:SASL_SSL
ssl.truststore.location=/truststore.jks
ssl.truststore.password=password123
ssl.keystore.location=/keystore2.jks
ssl.keystore.password=password123
ssl.key.password=password321
ssl.client.auth=required
authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
allow.everyone.if.no.acl.found=true
super.users=User:admin;User:root;User:centos;User:kafka;User:kafkabroker;User:ANONYMOUS
ssl.endpoint.identification.algorithm=HTTPS
sasl.enabled.mechanisms=PLAIN
sasl.mechanism.inter.broker.protocol=PLAIN
ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1
zookeeper.properties:
dataDir=/opt/confluent/zkdata
clientPort=2181
maxClientCnxns=0
initLimit=5
syncLimit=2
server.1=hostname:2888:3888
server.2=hostname:2888:3888
server.3=0.0.0.0:2888:3888
autopurge.purgeInterval=72
requireClientAuthScheme=sasl
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
authProvider.2=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
authProvider.3=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
zookeeper.jaas.conf:
Server {
org.apache.zookeeper.server.auth.DigestLoginModule required
user_super="admin-secret"
user_kafka="kafka-secret";
};
kafka_server.properties:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="kafkabroker"
password="kafkabroker-secret"
user_kafkabroker="kafkabroker-secret"
user_client="client-secret";
};
Client {
org.apache.zookeeper.server.auth.DigestLoginModule required
username="kafka"
password="kafka-secret";
};
настройки клиента:
протокол: SASL_SSL SASL Механизм: PLAIN Bootstrapserver: имя хоста: 9094, имя хоста 2: 9094, имя хоста 3: 9094 JAAS.conf:
org. apache .kafka.common.security.plain.PlainLoginМодуль требуется username = "client" password = "client-secret";