LdapLoginModule搜索优先非匿名搜索

时间:2011-09-09 05:54:35

标签: java active-directory ldap jaas

我在搜索优先模式下使用LdapLoginModule http://download.oracle.com/javase/6/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/LdapLoginModule.html和Microsoft Active Directory,因为我们的用户使用不同的OU。 AD不允许匿名搜索。

是否有可能在进行身份验证之前进行非匿名搜索,或者为什么匿名一词代表括号?

如果LdapLoginModules允许进行非匿名搜索?

亲切的问候

基督教

更新: 要允许在AD中使用技术帐户进行非匿名搜索,您必须使用另一个LoginModule。您可以实现自己的,或者如果您使用的是JBoss,则可以使用LdapExtLoginModule。 我们使用的是weblogic,因此我们使用了Oracle的UsernamePasswordLoginModule并配置了一个领域进行身份验证。

4 个答案:

答案 0 :(得分:2)

您是否知道Active-Directory中的you can allow anonymous searches(页面末尾的文章)。

答案 1 :(得分:0)

我认为你误读了文档。文档说:

“在搜索优先模式下,搜索LDAP目录以确定用户的可分辨名称,然后尝试进行身份验证。使用提供的用户名和指定的搜索过滤器执行(匿名)搜索。如果成功,则进行身份验证尝试使用用户的专有名称和提供的密码。“

它所做的一切都是确定用户的专有名称。它不允许你进行匿名搜索。

AD通常会允许匿名搜索电子邮件等内容,因为它是一个有用的功能,但最终归结为AD的配置方式。

我对LdapLoginModules一无所知,因为我还没有使用它们,但是如果你正在进行匿名搜索,你就不需要登录模块了,所有你需要的就是与目录服务器的连接

答案 2 :(得分:0)

要允许在AD中使用技术帐户进行非匿名搜索,您必须使用另一个LoginModule。您可以实现自己的,或者如果您使用的是JBoss,则可以使用LdapExtLoginModule。我们使用的是weblogic,因此我们使用了Oracle的UsernamePasswordLoginModule并配置了一个领域进行身份验证。

答案 3 :(得分:0)

我知道这是一个老问题。但您可以使用库存标准LdapLoginModule进行经过身份验证的搜索优先, 如果在JAAS配置文件中添加以下行以指定经过身份验证的用户来搜索活动目录

java.naming.security.principal="username"
java.naming.security.credentials="password"

用户名可以是特定用户的DN或映射的用户名,如user@abc.com