跳转至

5.3 SASL 监听支持多种机制

同一个 SASL_PLAINTEXT/SASL_SSL 的监听支持多种机制

kafka sasl 支持多种机制,可以同时开启:

sasl.enabled.mechanisms=PLAIN,SCRAM-SHA-256,SCRAM-SHA-512

同时可以针对 listener_name 和 sasl mechanisms 进行不同配置。

这里在 kafka_server_jaas.conf 中针对 SASL_CLIENT 与 EXT_CLIENT 分别进行配置:

sasl_client.KafkaServer {
    org.apache.kafka.common.security.scram.ScramLoginModule sufficient
    username="admin"
    password="admin_pass";

    org.apache.kafka.common.security.plain.PlainLoginModule sufficient
    username="admin"
    password="admin_pass"
    user_admin="admin_pass";
};

ext_client.KafkaServer {
    org.apache.kafka.common.security.scram.ScramLoginModule required
    username="admin"
    password="password";
};

给不同 listener 开放不同的 SASL 机制

# some.prop
# listener.name.{listenerName}.some.prop
# listener.name.{listenerName}.{mechanism}.some.prop

listener.name.sasl_client.sasl.enabled.mechanisms=PLAIN,SCRAM-SHA-512
listener.name.ext_client.sasl.enabled.mechanisms=SCRAM-SHA-512

client 通过 SASL_CLIENT 访问 broker 时,可以使用 3 种机制

bootstrap.servers=127.0.0.1:9093

security.protocol=SASL_PLAINTEXT

sasl.mechanism=PLAIN
# sasl.mechanism=SCRAM-SHA-256
# sasl.mechanism=SCRAM-SHA-512

java.security.auth.login.config=./config/kafka_client_jaas.conf
KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule sufficient
    username="admin"
    password="password";

    // org.apache.kafka.common.security.scram.ScramLoginModule sufficient
    // username="admin"
    // password="admin_pass";
};