LDAP用户无权浏览目录时如何绑定

时间:2013-11-08 02:41:11

标签: java ldap

我们有一个允许通过LDAP进行身份验证的java Web应用程序。 基本上,它遵循这个过程:

  • 绑定到具有搜索目录权限的管理员用户的目录。
  • 获取用户名/值并在目录中搜索在特定属性中具有该用户名/值的用户。
  • 与使用输入的密码找到的用户绑定。
  • 如果绑定成功,我们授予登录权。

这很好用,但我们最近遇到了LDAP用户登录的环境,无权访问目录本身。这会在绑定时导致错误。 (admin用户绑定正确,并搜索目录。它只是与找到的用户失败的最终绑定。)

LDAP目录(CA Directory)的内部日志记录显示绑定功能成功,但作为绑定过程的一部分,绑定用户正在查找自己...它无权访问。这会导致绑定失败。

使用此java代码完成对LDAP的绑定..

        Properties props = new Properties();
        props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        props.put(Context.PROVIDER_URL, createLDAPString());       
        props.put(Context.SECURITY_AUTHENTICATION, "simple");
        props.put(Context.SECURITY_PRINCIPAL, username);
        props.put(Context.SECURITY_CREDENTIALS, password);

        return new InitialLdapContext(props, null); 

有没有办法阻止内部查找发生?

或者我可以在没有绑定的情况下验证用户/密码吗?即。代表另一个用户绑定..或手动比较密码(听起来不太好)。

感谢。

1 个答案:

答案 0 :(得分:2)

目录设置不正确。用户应该能够阅读自己的条目。