Подтвердить что ты не робот

Настройка Tomcat для аутентификации с помощью Windows Active Directory

Каков наилучший способ настройки Tomcat 5.5 или более поздней версии для аутентификации пользователей из Windows Active Directory?

4b9b3361

Ответ 1

от www.jspwiki.org

Смотрите: ActiveDirectoryIntegration

Попробуйте это в файле server.xml с настройками ldap:

<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"

           connectionURL="ldap://youradsserver:389"
           alternateURL="ldap://youradsserver:389"         
           userRoleName="member"
           userBase="cn=Users,dc=yourdomain"
           userPattern="cn={0},cn=Users,dc=yourdomain"
           roleBase="cn=Users,dc=yourdomain"
           roleName="cn"
           roleSearch="(member={0})"
           roleSubtree="false"
           userSubtree="true" 
   />

и определите роль в tomcat-users.xml и web.xml вашего приложения

отредактируйте файл webapp_root/WEB_INF/Web.xml следующим образом:

<security-constraint>
   <display-name>your web app display name</display-name>
   <web-resource-collection>
     <web-resource-name>Protected Area</web-resource-name>
     <url-pattern>*.jsp</url-pattern>
     <url-pattern>*.html</url-pattern>
     <url-pattern>*.xml</url-pattern>
   </web-resource-collection>
   <auth-constraint>
     <role-name>yourrolname(ADS Group)</role-name>
   </auth-constraint>
 </security-constraint>
 <login-config>
   <auth-method>FORM</auth-method>
   <form-login-config>
     <form-login-page>/login.jsp</form-login-page>
     <form-error-page>/error.jsp</form-error-page>
   </form-login-config>
 </login-config>
 <security-role>
   <description>your role description</description>
   <role-name>yourrolename(i.e ADS group)</role-name>
 </security-role>

Ответ 2

Ответ на Blauhr хорош, но CN пользователя в AD основан на их "отображаемом имени", а не на имени saMAccountName (к которому пользователь подключается к системе). Основываясь на его решении, похоже, что кто-то должен войти в систему со своим отображаемым именем на основе userPattern.

Я лично использовал следующее:

      <Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
        connectionURL="ldap://DOMAIN_CONTROLLER:389"
        connectionName="[email protected]"
        connectionPassword="USER_PASSWORD"
        referrals="follow"
        userBase="OU=USER_GROUP,DC=DOMAIN,DC=com"
        userSearch="(sAMAccountName={0})"
        userSubtree="true"
        roleBase="OU=GROUPS_GROUP,DC=DOMAIN,DC=com"
        roleName="name"
        roleSubtree="true"
        roleSearch="(member={0})"
  />

Все остальное будет работать одинаково.

Ответ 3

Аутентификация на основе LDAP работает без каких-либо дополнительных шагов в любой операционной системе.

http://spnego.sf.net можно использовать для бесшумной аутентификации пользователей, зарегистрированных в домене Windows. Для этого необходима учетная запись домена, которая зарегистрирована в домене, чтобы быть авторитетной для предоставленной службы. Он работает как в Windows, так и в Linux.

Ответ 4

"Добро пожаловать в проект SPNEGO SourceForge Интегрированная проверка подлинности Windows в Java

Цель этого проекта - предоставить альтернативную библиотеку (файл .jar), которую серверы приложений (например, Tomcat) могут использовать как средство аутентификации клиентов (например, веб-браузеры).

Если ваша организация работает с Active Directory (AD), и все ваши веб-приложения проходят через Microsoft Internet Information Services (IIS), а IIS имеет встроенную проверку подлинности Windows, и все в вашей организации используют Internet Explorer (IE) то этот проект может не быть любого интереса к вам.