在测试设置中使用Tomcat JNDIRealm / Active Directory的问题

时间:2013-06-25 16:46:08

标签: tomcat active-directory jndi

我正在尝试在Windows 8计算机上使用Active Directory身份验证测试tomcat 6 Web应用程序。我试图通过对Active Directory的最低限度了解。我无法访问“真正的”活动目录,因此我一直尝试在带有ASDI Edit的Windows 8计算机上使用AD LDS(Adam)。我按照MSDN http://technet.microsoft.com/en-us/library/cc770639(v=ws.10).aspx上的说明进行操作。我创建了一个组/角色,并在该组中添加了一个成员。我按照指示使用JNDIRealm进行身份验证。我在Netbeans(6.9)下运行。我不能让tomcat接受这个角色。我尝试使用commonRole认为如果“用户”能够进行身份验证,这至少会匹配一些角色。

<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
           connecti)onURL="ldap://localhost:389"
           alternateURL="ldap://localhost:389"
           userPattern="CN={0},OU=AD LDS Users,O=Microsoft,C=US"
           roleBase="OU=groups,O=Microsoft,C=US"
           roleName="CN"
           roleSearch="member={0}" 
           commonRole="abcde"      
        /> 

我没有太多有用的退出系统。我按照指示设置日志记录,但我没有得到太多。如果输入错误的凭据,我会在日志中看到异常。如果我键入正确的凭据,则不会记录异常,并且日志显示:   罚款:验证失败()测试失败 并没有更多。缺少异常/堆栈跟踪使我相信用户/密码已被接受。

不知道在哪里转弯。有什么建议吗?有其他人有这个设置吗?我应该使用其他一些相对容易设置的免费LDAP解决方案吗?

1 个答案:

答案 0 :(得分:2)

让它工作...... AD LDS实例需要身份验证才能访问组/角色。我将一个用户添加到我可以用来访问目录的轻量级活动目录中。我必须将该成员添加到目录中的administrators角色。此新用户和密码用于连接到AD。 connectionName必须是用户的可分辨名称。

<Realm className="org.apache.catalina.realm.JNDIRealm" debug="99"
       connectionURL="ldap://localhost:389"
       connectionName="CN=AdPerson,OU=AD LDS Users,O=Microsoft,C=US"
       connectionPassword="adp"
       userPattern="CN={0},OU=AD LDS Users,O=Microsoft,C=US"
       roleBase="OU=Groups,O=Microsoft,C=US"
       roleName="CN"
       roleSearch="member={0}"
     />

不幸的是,没有更多关于我正在战斗的失败的日志文件。我被困了一段时间,因为它无声地失败了。最后,我确实使用JXplorer来测试我的连接,这就是我发现我需要某种形式的身份验证的方法,并从那里发现该名称需要是完整的DN。