1

我正在尝试在 Windows 8 机器上使用 Active Directory 身份验证测试 tomcat 6 Web 应用程序。我试图用最少的 Active Directory 知识来解决问题。我无权访问“真实”活动目录,因此我一直尝试在我的 Windows 8 机器上使用 AD LDS (Adam) 和 ASDI Edit。我按照 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"      
        /> 

我没有得到太多有用的退出系统。我已按照指示设置日志记录,但我没有得到太多。如果我输入了错误的凭据,我确实会在日志中看到异常。如果我输入正确的凭据,则不会记录异常,并且日志显示:FINE: Failed authenticate() test,仅此而已。缺少异常/堆栈跟踪使我相信用户/密码已被接受。

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

4

1 回答 1

2

让它工作...... AD LDS 实例需要身份验证才能访问组/角色。我在我的轻量级活动目录中添加了一个用户,我可以使用它来访问该目录。我必须将该成员添加到目录中的管理员角色。此新用户和密码用于连接到 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 的方式。

于 2013-06-26T01:28:06.380 回答