Кафка SASL_PLAINTEXT с GSSAPI для Kerberos - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь запустить один сервер kafka, используя SASL и GSSAPI с открытым текстом, но получаю ошибку ниже.

[2018-10-03 16: 08: 54,220] ОШИБКА [ID контроллера = 0, targetBrokerId = 0] Соединение с узлом 0 не прошло проверку подлинности из-за: ошибки: (java.security.PrivilegedActionException: javax.security.sasl.SaslException: сбой инициализации GSS [вызвано GSSException: действительные учетные данные не предоставлены]) при оценке SASLполученный от Kafka Broker токенКлиент Kafka перейдет в состояние AUTHENTICATION_FAILED.(org.apache.kafka.clients.NetworkClient)

в server.properties изменения:

listeners=SASL_PLAINTEXT://kafka.example.com:9095
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=GSSAPI
advertised.listeners=SASL_PLAINTEXT://kafka.example.com:9095
sasl.enabled.mechanism=GSSAPI
sasl.kerberos.service.name=HTTP

Вот мой конфиг jaas:

KafkaServer {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    useTicketCache=true
    storeKey=true
    keyTab="/home/kafka/kafka_server.keytab"
    principal="HTTP/kafka.example.com@UNIX.EXAMPLE.COM";
};

Есть ли какие-либо вопросы о том, как решить эту проблему?

1 Ответ

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

Прежде всего, либо используйте KeyTab (useKeyTab = true), либо используйте TicketCache (useTicketCache = true).Не используйте оба сразу.Это может привести к конфликтам.

Если у вас есть свой собственный бордюр, создайте принцип для kafka

sudo /usr/sbin/kadmin.local -q 'addprinc -randkey kafka/{hostname}@{REALM}' sudo /usr/sbin/kadmin.local -q "ktadd -k /etc/security/keytabs/{keytabname}.keytab kafka/{hostname}@{REALM}"

use

sasl.kerberos.service.name="kafka"

Установить параметры JVM

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

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

...