Настройка Tomcat 6.0 для аутентификации LDAP с использованием аутентификации = "DIGEST-MD5" - PullRequest
2 голосов
/ 23 ноября 2011

Простая аутентификация:

При использовании браузера LDAP я могу войти на сервер LDAP компании, используя простой текстовый пароль, указав: CN = имя пользователя, OU = пользователи, DC = мой, DC = компания, DC = com. Если я скопирую и вставлю эту строку в тэг Tomcat server.xml connectionName и использую простую аутентификацию (простой текстовый пароль виден при использовании wireshark), все работает.

Зашифрованный пароль:

В область JNDI server.xml я добавил следующее

authentication="DIGEST-MD5"
digest='MD5' 

Теперь Tomcat не может связываться с LDAP.

В браузере LDAP мне нужно предоставить учетные данные в форме: домен / пользователь, а затем я могу привязаться к LDAP с помощью DIGEST-MD5.

Существует ли особый способ указания имени соединения в файле server.xml, чтобы Tomcat мог успешно выполнить связывание?

Ответы [ 2 ]

0 голосов
/ 20 марта 2013

В соответствии с документацией Tomcat JNDIRealm поддерживает два разных метода аутентификации: режим привязки и режим сравнения.

Вы используете «Режим привязки», и в документации сказано: «В целях безопасности каталог может хранить дайджест пароля пользователя, а не текстовую версию (см.« Переваренные пароли »для получения дополнительной информации). В этом случае , как часть простой операции связывания, каталог автоматически вычисляет правильный дайджест открытого текста пароля , предоставленного пользователем, перед проверкой его по сохраненному значению. Следовательно, в режиме связывания область не участвует в дайджесте обработка. Дайджест-атрибут не используется и будет игнорироваться, если установлен.". Поэтому вы не можете использовать значение хеш-функции с «Режимом привязки».

С «Режимом сравнения» вы сможете делать то, что пытаетесь сделать, но не рекомендуется использовать «Режим сравнения» из соображений безопасности, как можно увидеть здесь: «Режим сравнения имеет некоторые недостатки. Во-первых, Атрибуты connectionName и connectionPassword должны быть сконфигурированы так, чтобы область могла читать пароли пользователей в каталоге. По соображениям безопасности это обычно нежелательно, так как многие реализации каталога не позволяют даже менеджеру каталога читать эти пароли. Кроме того, область должен обрабатывать дайджесты паролей самостоятельно, включая различия в используемых алгоритмах и способах представления хэшей паролей в каталоге, однако иногда области может понадобиться доступ к сохраненному паролю, например, для поддержки аутентификации доступа к дайджесту HTTP (RFC 2069). (Примечание что дайджест-аутентификация HTTP отличается от хранения дайджестов паролей в хранилище для пользовательской информации, как описано выше). "

ссылки для документации Tomcat: http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html#JNDIRealm и http://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html#JNDIRealm

0 голосов
/ 02 апреля 2012

Вы не упомянули, какой сервер каталогов вы используете.Возможно, ваш сервер просто не поддерживает DIGEST-MD5.Это можно проверить, проверив значения RootDSE SupportedSASLMechanisms.

Если вы используете Active Directory, убедитесь, что 1) вы создали SPN (подробности см. В setspn.exe) 2) учетную запись пользователя, к которой вы подключаетесьВ AD установлен флаг учетной записи пользователя «использовать обратимое шифрование».Без этой опции он никогда не будет работать, поскольку алгоритм DIGEST-MD5 требует доступа к паролям открытого текста на обоих концах.

...