我们有一个允许通过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);
有没有办法阻止内部查找发生?
或者我可以在没有绑定的情况下验证用户/密码吗?即。代表另一个用户绑定..或手动比较密码(听起来不太好)。
感谢。
答案 0 :(得分:2)
目录设置不正确。用户应该能够阅读自己的条目。