配置Tomcat 5.5或更高版本以从Windows Active Directory验证用户的最佳方法是什么?
答案 0 :(得分:25)
来自www.jspwiki.org
请参阅:ActiveDirectoryIntegration
使用ldap-settings:
在server.xml中尝试此操作<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>
答案 1 :(得分:18)
Blauhr的答案很好,但AD中用户的CN是基于他们的“显示名称”,而不是他们的saMAccountName(用户习惯登录)。基于他的解决方案,看起来有人必须使用他们的显示名称登录,基于userPattern。
我个人使用了以下内容:
<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
connectionURL="ldap://DOMAIN_CONTROLLER:389"
connectionName="USERID@DOMAIN.com"
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})"
/>
其他所有内容的工作方式都相同。
答案 2 :(得分:2)
基于LDAP的身份验证无需任何操作系统上的任何其他步骤即可运行。
http://spnego.sf.net可用于登录Windows域的用户的静默身份验证。这需要在域中注册的域帐户对提供的服务具有权威性。它适用于Windows和Linux。
答案 3 :(得分:0)
“欢迎来到SPNEGO SourceForge项目 Java中的集成Windows身份验证
这个项目的目的是提供一个替代库(.jar文件),应用程序服务器(如Tomcat)可以使用它作为验证客户端(如Web浏览器)的方法。
如果您的组织正在运行Active Directory(AD)并且所有Web应用程序都通过Microsoft的Internet信息服务(IIS),并且IIS启用了集成Windows身份验证,并且组织中的每个人都使用Internet Explorer(IE),那么这个项目可能不是对您有任何兴趣。“