Tomcat + Active Directory

Не думаю, что кому-то может такое понадобиться, но мало ли.
Итак задача сделать логин с помощью учетной записи из Active Directory в приложение работающее на Apache Tomcat.

Tomcat 5.5 + Example Apps(для тестирования)

  • Создаем в Active Directory группу Tomcat Group.
  • Создаем ключ для SSL соединения.
    keytool -genkey -alias tomcat -keyalg RSA
    По умолчанию ключ надо создавать с паролем changeit, а положить(сделать линк) ключ в папку с томкатом.
    ln -s ~/.keystore /usr/share/tomcat5.5/.keystore
    или
    cp ~/.keystore /usr/share/tomcat5.5/.keystore
    если вам не нравиться такой пароль и путь сделайте его какой нравиться, но в server.xml в * *его надо будет указать.
    keystoreFile=»/путь/к/.keystore» keystorePass=»дер_пароль»
  • Меняем server.xml добавяем + разкоментируем следующие строчки.
    Раскоментируем строчки про SSL:

И дописываем следующие строчки:
<Realm className=»org.apache.catalina.realm.JNDIRealm» debug=»99″
connectionURL=»ldap://192.168.1.1:389″  <!— Доменный контроллер —>
connectionName=»CN=ldap,OU=Users,DC=trex,DC=com»
<!— Пользователь для авторизации,права по минимум —>

  • connectionPassword=»ldap» *<!— Пароль—>
  • referrals=»follow» *
  • userBase=»OU=Users,DC=trex,DC=com» *<!—Место пользователей—>
  • userSearch=»(sAMAccountName={0})» *
  • userSubtree=»true» *
  • roleBase=»OU=Groups,DC=trex,DC=com» *<!— Место нахождение группы, которая сможет—>
  • roleName=»name» *
  • roleSubtree=»true» *
  • roleSearch=»(member={0})»*
  • />*
    В некоторых местах пишут, что надо все остальные Realm закоментировать. Я не коментировал, работает.
  • Идем в web.xml приложения которое требудет авторизации. В моем случае это. /usr/share/tomcat5.5-webapps/jsp-examples/WEB-INF/web.xml. Убираем там такие же уже существующие теги и добавляем свои вот такие.
    npuMepbI

    Protected Area
    .jsp
    .html
    .xml


    CONFIDENTIAL  <!—Перекидывает на SSL порт —>


    Tomcat Group <!—Название группы в Active Directory —>



    FORM

    /security/protected/login.jsp <!—логин скрипт, есть в examples —>
    /security/protected/error.jsp <!— error скрипт, есть в examples —>



    Tomcat Group Description <!— Описание группы —>
    Tomcat Group <!—Название группы в Active Directory —>
  • Перезапускаем Tomcat, пробуем зайти на страницу с примерами. Первое, что должно броситься в глаза, это https и изменившийся порт. Потом будет приглашение ввести пароль. Если все сделано правильно, загрузиться страница с примерами.

Удачной настройки.