Grails 3 и Spring Security Незашифрованный трафик LDAP

Я запускаю приложение Grails 3 на Tomcat 8. Разработанное мной приложение проходит через HTTPS и использует подключаемый модуль LDAP безопасности grails spring для аутентификации. (Страница входа по умолчанию предоставляется плагином, и ничего пользовательского) Tomcat позволяет использовать только HTTPS, а HTTP отключен.

Мой файл application.groovy также содержит следующий код для весенней безопасности:

grails.plugin.springsecurity.ldap.context.server = 'ldap://192.168.3.4:389/DC=MY_DOMAIN,DC=Net'
grails.plugin.springsecurity.password.algorithm = 'SHA-256'

(Другие детали - это просто параметры конфигурации для запроса и т. д.)

Вот мой тестовый сценарий:

У меня есть компьютер с Windows, который запускает приложение, размещенное на компьютере с Ubuntu. Машина с Ubuntu отправляет запрос LDAP на машину AD (Active Directory). Для справки, вот IP:

Windows Machine: 192.168.1.1
Tomcat Ubuntu Machine: 192.168.1.10
AD Machine: 192.168.3.4

После мониторинга TCP-трафика, исходящего от .1 (Windows-машина), все искажено, и его невозможно прочитать. При прослушивании пакетов от .10 до .4 (от Tomcat к AD) пакеты LDAP представлены в виде открытого текста. Конечно, я не думаю, что это должно быть так. Есть ли какой-то дополнительный шаг, который мне нужно сделать в tomcat, чтобы обеспечить шифрование трафика ldap?

Изображение проблемы


person angryip    schedule 05.04.2016    source источник


Ответы (2)


Я прочитал это сообщение, и оно превратило нашу что мы можем запустить сам LDAP через ssl. Таким образом, наша строка подключения будет идти от:

'ldap://192.168.3.4:389/DC=MY_DOMAIN,DC=Net'

to

'ldaps://192.168.3.4:636/DC=MY_DOMAIN,DC=Net'

Обратите внимание, в дополнение к этому вам также необходимо убедиться, что корневые сертификаты добавлены в список доверия в Java. Для меня следующая команда, похоже, помогла:

keytool -import -noprompt -trustcacerts -alias myAdCert -file /location_of_cert/adcert.cer -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
person angryip    schedule 05.04.2016

Вам необходимо использовать Secure LDAP, который использует порт 636 и/или префикс ldaps://.

person jnunderwood    schedule 05.04.2016
comment
Я думаю, вы правы. Я только что видел подобный пример в каком-то случайном блоге. Я поиграю с этим и посмотрю, смогу ли я заставить это работать. - person angryip; 05.04.2016