配置Tomcat以使用Windows Active Directory进行身份验证

问题描述 投票:34回答:4

配置Tomcat 5.5或更高版本以从Windows Active Directory验证用户的最佳方法是什么?

tomcat ldap
4个回答
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>

18
投票

Blauhr的答案很好,但AD中用户的CN是基于他们的“显示名称”,而不是他们的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})"
  />

其他一切都会起到同样的作用。


2
投票

基于LDAP的身份验证无需任何操作系统上的任何其他步骤即可运行

http://spnego.sf.net可用于登录Windows域的用户的静默身份验证。这需要在域中注册的域帐户对提供的服务具有权威性。它适用于Windows和Linux。


0
投票

“欢迎使用Java中的SPNEGO SourceForge项目集成Windows身份验证

该项目的目的是提供一个替代库(.jar文件),应用程序服务器(如Tomcat)可以使用它作为验证客户端(如Web浏览器)的方法。

如果您的组织正在运行Active Directory(AD)并且所有Web应用程序都通过Microsoft的Internet信息服务(IIS),并且IIS已启用集成Windows身份验证,并且组织中的每个人都使用Internet Explorer(IE),则此项目可能对你没有任何兴趣。“

© www.soinside.com 2019 - 2024. All rights reserved.