NO SCRAM-SASL AUTHENTICATION BETWEEN KRAFT CONTROL NODES Hi there.
I successfully build a 5 node Kafka Raft cluster: 3) controller only role node kraft-ct-1,kraft-ct-2,kraft-ct-3 2) broker only node kraft-bro-1,kraft-bro-2 i setup ssl authentication : controller -> controller broker -> controller And all works as expected I enabled SASL_SCRAM, on brokers nodes i precreate a “scram user” before starting broker bin/kafka-storage.sh format -t jkZVRnZCRBqx1V6UUFDm5w -c /opt/kafka/config/server.properties --add-scram 'SCRAM-SHA-256=[name=admin,password=admin-secret]' and i can l connect from a producer/consumer with that user But, when i try to enable SCRAM/SASL on controller -> controller i get this error [2023-11-03 09:05:02,134] INFO [SocketServer listenerType=CONTROLLER, nodeId=1] Failed authentication with /192.168.1.34 (channelId=192.168.1.33:9093-192.168.1.34:56006-1304) (Authentication failed during authentication due to invalid credentials with SASL mechanism SCRAM-SHA-256) (org.apache.kafka.common.network.Selector) NON WORKING KAFKA INTER CONTROLLER SCRAM CONFIGURATIONS “kafka controller only node” process.roles=controller node.id=1 controller.quorum.voters=1@kraft-ct-1:9093,2@kraft-ct-2:9093,3@kraft-ct-3 :9093 listeners=CONTROLLER://kraft-ct-1:9093 controller.listener.names=CONTROLLER listener.security.protocol.map=CONTROLLER:SASL_SSL,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL sasl.enabled.mechanisms=SASL_SCRAM,SASL_PLAINTEXT,SCRAM-SHA-256,SCRAM-SHA-512 sasl.mechanism.controller.protocol=SCRAM-SHA-256 listener.name.controller.sasl.enabled.mechanisms=SCRAM-SHA-256 listener.name.controller.ssl.client.auth=required ssl.truststore.location=/etc/keystore/server.truststore.jks ssl.truststore.password=123456 ssl.keystore.location=/etc/keystore/kraft-kafka.keystore.jks ssl.keystore.password=123456 ssl.key.password=123456 “controller jaas file config” KafkaServer { org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret"; }; Controller number 1 start correctly Controleer number 2 start but won't join the cluster with error [2023-11-03 10:02:55,622] INFO [RaftManager id=2] Failed authentication with kraft-ct-1/192.168.1.33 (channelId=1) (Authentication failed during authentication due to invalid credentials with SASL mechanism SCRAM-SHA-256) (org.apache.kafka.common.network.Selector) [2023-11-03 10:02:55,626] INFO [RaftManager id=2] Node 1 disconnected. (org.apache.kafka.clients.NetworkClient) [2023-11-03 10:02:55,627] ERROR [RaftManager id=2] Connection to node 1 (kraft-ct-1/192.168.1.33:9093) failed authentication due to: Authentication failed during authentication due to invalid credentials with SASL mechanism SCRAM-SHA-256 (org.apache.kafka.clients.NetworkClient) [2023-11-03 10:02:55,628] ERROR [kafka-2-raft-outbound-request-thread]: Failed to send the following request due to authentication error: ClientRequest(expectResponse=true, callback=kafka.raft.KafkaNetworkChannel$$Lambda$585/0x0000000840405440@4c3fa10e, destination=1, correlationId=0, clientId=raft-client-2, createdTimeMs=1699005774792, requestBuilder=VoteRequestData(clusterId='jkZVRnZCRBqx1V6UUFDm5w', topics=[TopicData(topicName='__cluster_metadata', partitions=[PartitionData(partitionIndex=0, candidateEpoch=2706, candidateId=2, lastOffsetEpoch=2598, lastOffset=10913)])])) (kafka.raft.RaftSendThread) [2023-11-03 10:02:55,633] ERROR Request OutboundRequest(correlationId=0, data=VoteRequestData(clusterId='jkZVRnZCRBqx1V6UUFDm5w', topics=[TopicData(topicName='__cluster_metadata', partitions=[PartitionData(partitionIndex=0, candidateEpoch=2706, candidateId=2, lastOffsetEpoch=2598, lastOffset=10913)])]), createdTimeMs=1699005774792, destinationId=1) failed due to authentication error (kafka.raft.KafkaNetworkChannel) org.apache.kafka.common.errors.SaslAuthenticationException: Authentication failed during authentication due to invalid credentials with SASL mechanism SCRAM-SHA-256 [2023-11-03 10:02:55,640] ERROR [RaftManager id=2] Unexpected error NETWORK_EXCEPTION in VOTE response: InboundResponse(correlationId=0, data=VoteResponseData(errorCode=13, topics=[]), sourceId=1) (org.apache.kafka.raft.KafkaRaftClient) [2023-11-03 10:02:55,667] ERROR [kafka-2-raft-outbound-request-thread]: Failed to send the following request due to authentication error: ClientRequest(expectResponse=true, callback=kafka.raft.KafkaNetworkChannel$$Lambda$585/0x0000000840405440@44e72a57, destination=1, correlationId=9, clientId=raft-client-2, createdTimeMs=1699005775659, requestBuilder=VoteRequestData(clusterId='jkZVRnZCRBqx1V6UUFDm5w', topics=[TopicData(topicName='__cluster_metadata', partitions=[PartitionData(partitionIndex=0, candidateEpoch=2706, candidateId=2, lastOffsetEpoch=2598, lastOffset=10913)])])) (kafka.raft.RaftSendThread) [2023-11-03 10:02:55,667] ERROR Request OutboundRequest(correlationId=9, data=VoteRequestData(clusterId='jkZVRnZCRBqx1V6UUFDm5w', topics=[TopicData(topicName='__cluster_metadata', partitions=[PartitionData(partitionIndex=0, candidateEpoch=2706, candidateId=2, lastOffsetEpoch=2598, lastOffset=10913)])]), createdTimeMs=1699005775659, destinationId=1) failed due to authentication error (kafka.raft.KafkaNetworkChannel) org.apache.kafka.common.errors.SaslAuthenticationException: Authentication failed during authentication due to invalid credentials with SASL mechanism SCRAM-SHA-256 [2023-11-03 10:02:55,668] ERROR [RaftManager id=2] Unexpected error NETWORK_EXCEPTION in VOTE response: InboundResponse(correlationId=9, data=VoteResponseData(errorCode=13, topics=[]), sourceId=1) (org.apache.kafka.raft.KafkaRaftClient) Did i miss something or it’s not supported SASL/SCRAM controller to controller? WORKING CONFIGURATIONS “kafka controller only node” process.roles=controller node.id=1 controller.quorum.voters=1@kraft-ct-1:9093,2@kraft-ct-2:9093,3@kraft-ct-3 :9093 listeners=CONTROLLER://kraft-ct-1:9093 controller.listener.names=CONTROLLER listener.security.protocol.map=CONTROLLER:SSL,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL listener.name.controller.ssl.client.auth=required ssl.truststore.location=/etc/keystore/server.truststore.jks ssl.truststore.password=123456 ssl.keystore.location=/etc/keystore/kraft-kafka.keystore.jks ssl.keystore.password=123456 ssl.key.password=123456 “kafka broker only node” process.roles=broker node.id=4 controller.quorum.voters=1@kraft-ct-1:9093,2@kraft-ct-2:9093,3@kraft-ct-3 :9093 listeners=BROKER://kraft-bro-1:9092 inter.broker.listener.name=BROKER advertised.listeners=BROKER://kraft-bro-1:9092 controller.listener.names=CONTROLLER listener.security.protocol.map=CONTROLLER:SSL,BROKER:SASL_SSL,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL sasl.enabled.mechanisms=SASL_PLAINTEXT,SCRAM-SHA-256,SCRAM-SHA-512 sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256 ssl.client.auth=required ssl.truststore.location=/etc/keystore/server.truststore.jks ssl.truststore.password=123456 ssl.keystore.location=/etc/keystore//kraft-kafka.keystore.jks ssl.keystore.password=123456 ssl.key.password=123456 “broker jaas_file config” //opt/kafka/config/kafka_server_jaas.conf KafkaServer { org.apache.kafka.common.security.scram.ScramLoginModule required username="admin" password="admin-secret"; }; “client jaas confie file” opt/kafka/config/client-ssl.properties security.protocol=SASL_SSL ssl.truststore.location=/etc/aruba-certificate/keystore/kraft-client.truststore.jks ssl.truststore.password=123456 ssl.keystore.location=/etc/aruba-certificate/keystore/kraft-client.keystore.jks ssl.keystore.password=123456 ssl.key.password=123456 sasl.mechanism=SCRAM-SHA-256 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="admin" \ password="admin-secret"; with above configurations all work perfectly the quorum is formed the broker connect to controller the producer/consumer connect to broker /opt/kafka/bin/kafka-metadata-quorum.sh --bootstrap-server kraft-bro-1:9092 --command-config /opt/kafka/config/client-ssl.properties describe --status ClusterId: jkZVRnZCRBqx1V6UUFDm5w LeaderId: 1 LeaderEpoch: 2598 HighWatermark: 9895 MaxFollowerLag: 0 MaxFollowerLagTimeMs: 0 CurrentVoters: [1,2,3] CurrentObservers: [4,5] /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server kraft-bro-1:9092 --consumer.config /opt/kafka/config/client-ssl.properties --topic pippo --from-beginning 111,2222 222,2333 2323123,2312321 312312,12312312 Thanks