Каков наилучший способ настройки Tomcat 5.5 или более поздней версии для аутентификации пользователей из Windows Active Directory?
Настройка Tomcat для аутентификации с помощью Windows Active Directory
Ответ 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) то этот проект может не быть любого интереса к вам.