Kafka SASL: OAUTHBEARER и PLAIN одновременно - PullRequest
1 голос
/ 30 мая 2019

Я пытаюсь сделать следующее:

For Clients to Broker communication - use OAUTHBEARER authentication
For Broker to Broker communication - use PLAIN authentication

У меня есть следующая конфигурация JAAS:

{
  KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="inter"
    password="inter-secret"
    user_inter="inter-secret"
    user_admin="YvNzcbmqhA0DfxjP";

    org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required;
  };

  Client {
    org.apache.zookeeper.server.auth.DigestLoginModule required
    username="zookeeper"
    password="zookeeper-secret";
  };
}

И у меня есть следующие конфиги в server.properties:

sasl.enabled.mechanisms=PLAIN,OAUTHBEARER
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.server.callback.handler.class=br.com.jairsjunior.security.oauthbearer.OauthAuthenticateValidatorCallbackHandler

Но если запустить службу kafka, я вижу ошибку, подобную приведенной ниже:

used by: java.lang.IllegalArgumentException: Must supply exactly 1 non-null JAAS mechanism configuration (size was 2)
at org.apache.kafka.common.security.oauthbearer.internals.unsecured.OAuthBearerUnsecuredValidatorCallbackHandler.configure(OAuthBearerUnsecuredValidatorCallbackHandler.java:114)
at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:122)
... 17 more

, которая указывает, что kafka не позволяет указывать несколько конфигураций механизма JAAS.

Так как я могуукажите несколько настроек JAAS и настройте механизмы аутентификации, как показано ниже:

CLient to Broker ----> OAUTHBEARER
Broker to Broker ----> PLAIN

Спасибо!

...