我们正在使用Spring安全性在Java中开发Web应用程序。我的任务是添加对针对Active Directory验证用户身份的支持。 为此,我将我们的2008服务器之一提升为域控制,并添加了一个带有ActiveDirectoryLdapAuthenticationProvider spring类的代码片段来验证登录用户。 它与ldap和ldaps protcols配合使用。
但有几个问题:
1)ActiveDirectoryLdapAuthenticationProvider构造函数只接受AD url和域名,而不像OpenLDAP的LdapAuthenticationProvider,它需要mote输入详细信息,如managerDN,管理员密码,用户搜索库和组搜索库等。不应该Active Directory需要所有这些数据吗?我认为至少需要管理员用户/密码来允许连接!当然,在我的测试例程中,我只提供了url和domain,并成功验证了用户。
2)我需要编写快速连接测试例程来验证用户输入的AD URL和域是否有效。怎么做?
顺便说一句,我们的应用程序将部署在Ubuntu上。
感谢。
答案 0 :(得分:0)
能够使用以下代码段进行连接测试:
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://dc.example.com");
env.put(Context.SECURITY_AUTHENTICATION, "none");
try {
new InitialDirContext(env);
} catch (NamingException e) {
// not connected
}
仍然试图了解网址和域名信息足以与AD对话,或者在某些情况下需要提供更多对象信息。