Хранитель зоопарка SASL security

Я использую версию zookeeper 3.4.12 и при попытке включить SASL обнаружил ошибку ниже. Может ли кто-нибудь помочь в этом.

Client {
 com.sun.security.auth.module.Krb5LoginModule required
 useKeyTab=true
 storeKey=true
 useTicketCache=true
 keyTab="/tmp/kafka/zookeeper.service.keytab
 principal="zookeeper/[email protected]";
};

Ошибка :

2018-11-02 09: 35: 01,998] Ошибка аутентификации SASL с использованием контекста входа «Клиент» с исключением: {} (org.apache.zookeeper.client.ZooKeeperSaslClient) javax.security.sasl.SaslException: Ошибка аутентификации с помощью Член кворума Zookeeper: saslToken члена кворума имеет значение NULL.


person Satya_1    schedule 02.11.2018    source источник
comment
[2018-11-02 10: 05: 24,321] ОШИБКА аутентификации SASL с использованием контекста входа «Клиент» с исключением: {} (org.apache.zookeeper.client.ZooKeeperSaslClient) javax.security.sasl.SaslException: Ошибка аутентификации с член кворума Zookeeper: saslToken члена кворума имеет значение NULL. на org.apache.zookeeper.client.ZooKeeperSaslClient.createSaslToken (ZooKeeperSaslClient.java:279) на org.apache.zookeeper.client.ZooKeeperSaslClient.respondToServer (ZooKeeperSaslClient.respondToServer (ZooKeeperSaslClient.respondToServer) (ZooKeeperSaslClient.   -  person Satya_1    schedule 02.11.2018
comment
Какие изменения вы внесли? Проверяли ли вы этот раздел в документации Kafka: kafka.apache.org/documentation/#zk_authz   -  person Mickael Maison    schedule 03.11.2018


Ответы (4)


Первым шагом в обеспечении безопасности Zookeeper является обеспечение связи между узлами кворума. Полное объяснение здесь.

В jaas-файле Zookeeper должны быть разделы QuorumServer и QuorumLearner.

Затем вы можете защитить связь между кластером Zookeeper и клиентами как Kafka. Полное объяснение здесь

Вы добавляете раздел Сервер в файл jaas Zookeeper, и в вашем файле Kafka jaas должен быть раздел Клиент.

person Gery    schedule 06.11.2018

Проблема устранена, пробелы в jaas вызывали проблему

person Satya_1    schedule 06.11.2018

Я думаю, проблема в том, что вам не хватает двойной кавычки на

keyTab="/tmp/kafka/zookeeper.service.keytab
person Pubudu Sitinamaluwa    schedule 04.11.2018
comment
Похоже, я пропустил это при публикации вопроса, он есть. Но у вас все еще та же проблема, что бы это могло быть - person Satya_1; 04.11.2018

У меня была такая же проблема ...

SaslException: Error in authenticating with a Zookeeper Quorum member: the quorum member's saslToken is null

Эта ошибка также была в журнале Zookeeper Server:

ERROR [NIOWorkerThread-6:ZooKeeperServer@1191] - cnxn.saslServer is null: cnxn object did not initialize its saslServer properly.

Моя конфигурация, использующая взаимную аутентификацию Kerberos между экземплярами zookeeper.

Решение

Отсутствует раздел "Сервер"

Моя проблема заключалась в том, что у меня не было раздела Server в моей конфигурации jaas сервера для Zookeeper.

Мне нужно что-то вроде:

QuorumServer {
       com.sun.security.auth.module.Krb5LoginModule required
       useKeyTab=true
       keyTab="/etc/security/keytabs/zookeeper.keytab"
       storeKey=true
       useTicketCache=false
       debug=false
       principal="zookeeper/[email protected]";
};

QuorumLearner {
       com.sun.security.auth.module.Krb5LoginModule required
       useKeyTab=true
       keyTab="/etc/security/keytabs/zookeeper.keytab"
       storeKey=true
       useTicketCache=false
       debug=false
       principal="zookeeper/[email protected]";
};

Server {
       com.sun.security.auth.module.Krb5LoginModule required
       useKeyTab=true
       keyTab="/etc/security/keytabs/zookeeper.keytab"
       storeKey=true
       useTicketCache=false
       principal="zookeeper/[email protected]";
};

Когда клиенты подключаются к Zookeeper, они будут проходить аутентификацию в разделе Server этой конфигурации. Это необходимо для работы SASL.

Также убедитесь, что у вас conf/java.env установлено что-то вроде:

SERVER_JVMFLAGS="${SERVER_JVMFLAGS} -Djava.security.auth.login.config=/opt/zookeeper/conf/server-jaas.conf"
CLIENT_JVMFLAGS="${CLIENT_JVMFLAGS} -Djava.security.auth.login.config=/opt/zookeeper/conf/client-jaas.conf"
person Ben DeMott    schedule 10.03.2020