【问题标题】:Kafka: enabling multiple authentication methodsKafka:启用多种身份验证方法
【发布时间】:2019-02-06 16:03:27
【问题描述】:

我过去一直致力于为 Kafka 客户端设置身份验证。我有我提到过:

  1. https://kafka.apache.org/documentation/#security
  2. https://docs.confluent.io/current/kafka/authentication_sasl/index.html#sasl-configuration-for-kafka-brokers

还有其他链接。

正如文档中提到的,我们需要有 jaas 配置文件来指定身份验证方法,我有一个如下所示:

KafkaClient {
    org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required
    LoginStringClaim_sub="admin";
};

这基本上为 kafka 客户端添加了 OAuth 身份验证。

问题是 - 我可以在 kafka 代理上启用多种身份验证方法

我的意思是我可以在 Kafka 上同时启用 OAuthBearer 和 PLAIN 身份验证,并让 客户端 通过其中任何一种方法进行身份验证。

【问题讨论】:

    标签: authentication oauth apache-kafka


    【解决方案1】:

    好的,我找到了方法。

    代理上可以同时启用多种 SASL 机制,而每个客户端必须选择一种机制。

    在 JAAS 配置文件中,我们必须指定多个登录模块的配置,如下所示:

    KafkaServer {
      org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required
      LoginStringClaim_sub="admin";
    
      org.apache.kafka.common.security.plain.PlainLoginModule required
      username="admin"
      password="admin-secret"
      user_admin="admin-secret"
      user_alice="alice-secret";
    };
    

    然后我们必须在 server.properties 中启用 SASL 机制:

    # List of enabled mechanisms, can be more than one
    sasl.enabled.mechanisms=OAUTHBEARER,PLAIN
    

    然后在server.properties中指定SASL安全协议和broker间通信机制

    # Configure SASL_SSL if SSL encryption is enabled, otherwise configure SASL_PLAINTEXT
    security.inter.broker.protocol=SASL_SSL
    
    # Configure the appropriate inter-broker protocol
    sasl.mechanism.inter.broker.protocol=PLAIN
    

    归功于 - https://docs.confluent.io/current/kafka/authentication_sasl/index.html#enabling-multiple-sasl-mechanisms

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      • 2010-12-31
      • 2019-06-13
      • 2021-11-27
      • 2019-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多