java - 如何匿名访问 Windows Active Directory?

标签 java ldap jndi

在我的 Java 网络 (JBoss) 应用程序中,我需要从 Active Directory 获取数据。基本上,我知道员工的用户 ID(Windows 登录 ID),我需要知道他/她的办公室电话号码。我认为唯一包含员工电话号码的地方是 Windows Active Directory。所以我尝试了一些示例 java 代码并尝试访问 Active Directory。这是示例代码 ( http://myjeeva.com/querying-active-directory-using-java.html )

public ActiveDirectory(String username, String password, String domainController) {
    properties = new Properties();        
 
    properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    properties.put(Context.PROVIDER_URL, "LDAP://" + domainController);
    properties.put(Context.SECURITY_PRINCIPAL, username + "@" + domainController);
    properties.put(Context.SECURITY_CREDENTIALS, password);
 
    // initializing active directory LDAP connection
    try {
        dirContext = new InitialDirContext(properties);
    } catch (NamingException e) {
        LOG.severe(e.getMessage());
    }
 
    // default domain base for search
    domainBase = getDomainBase(domainController);
 
    // initializing search controls
    searchCtls = new SearchControls();
    searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
    searchCtls.setReturningAttributes(returnAttributes);
}

我们可以看到,我需要有用户名和密码才能查询 Activity 目录中的用户数据,但我不可能获得所有用户的密码。我还尝试将“密码”设置为“无”,试图使用匿名访问,但它不起作用。 有人知道是否可以匿名访问 Activity 目录吗?有人告诉我在 asp.net 中,可以在不提供用户 ID 和密码的情况下访问 Activity 目录。我想知道它也应该在 Java 中工作。我感谢任何帮助或例子。非常感谢。

最佳答案

  1. 据我所知,现在允许匿名登录到 ldap 服务器已经很不常见了
  2. 询问 Active Directory 服务器的管理员,是否(部分)允许 1)
  3. 您无需知道每个用户的密码即可访问任何人的电话号码;尝试使用专门为您的 Web 应用程序设置的单个帐户来模拟您的 JBoss 应用程序,具有足够的权限来阅读您需要的内容
  4. 在进行任何 LDAP 编程之前,使用一个好的 LDAP 编辑器来查看您是否可以访问您需要的东西。尝试例如http://directory.apache.org/studio .

关于java - 如何匿名访问 Windows Active Directory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27079144/

相关文章:

tomcat - 数据源属性的 SpringBoot 配置文件

python - 使用 django REST 进行 LDAP 身份验证

spring - java :comp/env/do?是什么意思

java - JPA 中乐观锁定的表索引/pk

java - 如何通过swt中的停止按钮停止TestNG的java线程

security - Grails:Spring Security 插件对于简单的安全性来说是否过于强大

java - 通过 JAVA 的 LDAP 无需提供密码

JMS 的 Spring 配置(Websphere MQ - SSL、Tomcat、JNDI、非 IBM JRE)

java - 为什么 Java 创建的两个子进程表现不同?

java - 继承设计