Apache Рукопожатие Kafka SSL не выполняется с настройками SASL_SSL PLAIN - PullRequest
0 голосов
/ 26 февраля 2020

У меня возникает следующая проблема:

Я использую 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";

...