Тесты JMeter LDAP с использованием учетных данных GSSAPI / kerberos - PullRequest
0 голосов
/ 10 октября 2018

Я хотел бы использовать JMeter для запуска некоторого нагрузочного тестирования с нашей службой OpenLDAP, проходящей аутентификацию с использованием GSSAPI (т. Е. Kerberos).Как заставить JMeter использовать для этого таблицу ключей с учетными данными Kerberos?(Примечание: я попытался следовать указаниям здесь, но они не работали для меня: https://community.hortonworks.com/articles/141035/jmeter-kerberos-setup-for-hive-load-testing.html)

ОБНОВЛЕНИЕ

Команда, которую я использую для запуска JMeter:

java.exe -XX:+HeapDumpOnOutOfMemoryError -Xms1g -Xmx1g 
-XX:MaxMetaspaceSize=256m -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20 -Djava.security.egd=file:/dev/urandom
-Duser.language="en" -Duser.region="EN"
-Djava.security.debug=gssloginconfig,configfile,configparser,logincontext 
-jar "D:\JMeter\bin\ApacheJMeter.jar"  
-Dsun.security.krb5.debug=true 
-Djava.security.krb5.conf="D:\JMeter\bin\krb5.conf"
-Djava.security.auth.login.config="D:\JMeter\bin\jaas.conf"
-Djavax.security.auth.useSubjectCredsOnly=false

Содержимое D:\JMeter\bin\jaas.conf:

JMeter {
    com.sun.security.auth.module.Krb5LoginModule required
    doNotPrompt=true
    useTicketCache=false
    useKeyTab=true
    keyTab="D:\JMeter\bin\ldap.keytab"
    principal="service/testing-prod@example.com"
    debug=true;
};

У меня есть один сэмплер LDAP-запросов. Для этого сэмплера я ввел сервер LDAP, порт, базу поиска и фильтр. Я запускаю тест, который "успешно", ноинформация не возвращается.

Я вижу нет сообщений журнала в jmeter.log, касающихся успеха или неудачи аутентификации.

1 Ответ

0 голосов
/ 11 октября 2018

К сожалению, ваше заявление didn't work нам ничего не говорит.Что касается упомянутого руководства - это хорошо для документов HortonWorks, однако оно может быть неприменимо для настройки вашего приложения, так как Kerberos имеет много граней, например:

  1. Ваш REALM будет другим
  2. Ваш SPN будет другим (он может присутствовать или не присутствовать)
  3. Ваша конфигурация keytab будет другой (опять же, Kerberos может использовать или не использовать)ключевые таблицы для аутентификации)
  4. Ваш KDC будет другим
  5. Ваши алгоритмы генерации ключей могут отличаться

Поэтому я бы порекомендовал следующее:

  1. Обратитесь к сетевым администраторам / разработчикам / devops / кому-либо, кто может узнать о вашей настройке Kerberos и собрать как можно больше информации
  2. Включитьведение журнала отладки для диспетчера авторизации HTTP JMeter путем добавления следующей строки в файл log4j2.xml :

    <Logger name="org.apache.jmeter.protocol.http.control" level="debug" />
    
  3. включение ведения журнала отладки для Java Kerberosреализации, добавив следующую строку в system.properties file:

    sun.security.krb5.debug=true
    
  4. Перезапустите JMeter, чтобы получить изменения
  5. Перезапустите тест и посмотритедля основной причины ошибки в файле jmeter.log и в файле STDOUT
  6. Исправьте ошибку
  7. Повторяйте шаг 5, пока не будете удовлетворены результатом

Существуют сотни разных причин, возможно, ваша настройка выполнена на 100%, однако ваш вход в систему не удастся, потому что у вас другое время на KDC и вашем компьютере JMeter, и он нуждается в синхронизации,

...