Временная ошибка аутентификации kerberos с клиентским приложением Kafka - PullRequest
0 голосов
/ 20 ноября 2018

Я использую последнюю версию kafka и временно сталкиваюсь с проблемой при подключении моих клиентов / производителей (консольных) клиентов к брокеру kafka через SASL_PLAINTEXT.

Это мой файл конфигурации jaas

KafkaClient {
   com.sun.security.auth.module.Krb5LoginModule required
   useTicketCache=true;
};

вот свойства java, которые я передаю:

-Djavax.security.auth.useSubjectCredsOnly=false
-Dsecurity.protocol=SASL_PLAINTEXT
-Dsasl.kerberos.service.name=HTTP
-Dsasl.mechanism=GSSAPI

И это исключение, которое я получаю:

Caused by: org.apache.kafka.common.KafkaException: javax.security.auth.login.LoginException: Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user. not available to garner  authentication information from the user
        at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:127)
        at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:140)
        at org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:65)
        at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:88)
        at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:710)
        ... 33 more
Caused by: javax.security.auth.login.LoginException: Could not login: the client is being asked for a password, but the Kafka client code does not currently support obtaining a password from the user. not available to garner  authentication information from the user
        at com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:940)

Может кто-нибудь помочь, пожалуйста, здесь.

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Я хотел бы предложить несколько вариантов,

  1. Перечислите все принципы в текущей обналиченной клавиатуре и проверьте, верны ли они.

  2. Если вы пытаетесь внести какие-либо изменения в тему, используя любой другой принцип, кроме KAFKA, эта операция не будет выполнена.Установите -Dsasl.kerberos.service.name = kafka

  3. Попробуйте установить

    export KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/jaas.conf -Djava.security.krb5.conf=/etc/krb5.conf -Dsun.security.krb5.debug=true"

  4. Если вы используетеконсоль производитель / потребитель, необходимо указать конфигурацию производителя / конфигурацию потребителя.Сконфигурируйте следующие свойства в файле supplier.properties или consumer.properties.

    security.protocol=SASL_PLAINTEXT (or SASL_SSL) sasl.mechanism=GSSAPI (or PLAIN)

    используйте команду, как указано ниже для потребителя консоли

    kafka-console-consumer --bootstrap-server host:9092 --consumer.config /path/to/consumer.properties --topic Topic

Надеюсь, это поможет:)

0 голосов
/ 20 ноября 2018

принципал и keytab отсутствуют в вашем файле jaas.

см. https://kafka.apache.org/documentation/#security_sasl_kerberos

...