首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法使用LDAP连接从Java后端检索Active Directory用户[LDAP:错误代码32 -没有此类对象]

当您在Java后端尝试使用LDAP连接检索Active Directory(AD)用户时,遇到“LDAP:错误代码32 -没有此类对象”的错误,通常意味着LDAP查询未能找到指定的对象。以下是关于此问题的基础概念、可能的原因以及解决方案的详细解释:

基础概念

LDAP(轻量级目录访问协议) 是一种用于访问和维护分布式目录信息服务的应用层协议。

Active Directory(AD) 是微软提供的一个目录服务,它存储了网络资源的信息,并使得管理员和用户能够轻松地查找和使用这些信息。

可能的原因

  1. 查询过滤器错误:LDAP查询中使用的过滤器可能不正确,导致无法匹配任何对象。
  2. 基础DN(Distinguished Name)错误:指定的基础DN可能不正确或不存在。
  3. 权限问题:执行LDAP查询的用户账户可能没有足够的权限来访问请求的数据。
  4. 网络问题:可能存在网络连接问题,导致无法正确访问LDAP服务器。

解决方案

1. 检查查询过滤器

确保您的LDAP查询过滤器正确无误。例如,如果您正在查找特定用户名的用户,过滤器可能类似于:

代码语言:txt
复制
String filter = "(&(objectClass=user)(sAMAccountName=username))";

2. 验证基础DN

确认您使用的基础DN是正确的。基础DN应该指向包含用户账户的目录节点。例如:

代码语言:txt
复制
String baseDN = "DC=example,DC=com";

3. 检查权限

确保用于连接LDAP服务器的用户账户具有足够的权限来执行查询。

4. 测试网络连接

使用工具如ldapsearch来测试是否可以从您的服务器成功地连接到LDAP服务器。

示例代码

以下是一个简单的Java示例,展示如何使用JNDI进行LDAP查询:

代码语言:txt
复制
import javax.naming.Context;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;
import java.util.Hashtable;

public class LDAPTest {
    public static void main(String[] args) {
        Hashtable<String, String> env = new Hashtable<>();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL, "ldap://your-ldap-server:389");
        env.put(Context.SECURITY_AUTHENTICATION, "simple");
        env.put(Context.SECURITY_PRINCIPAL, "your-username@your-domain");
        env.put(Context.SECURITY_CREDENTIALS, "your-password");

        try {
            DirContext ctx = new InitialDirContext(env);
            String filter = "(&(objectClass=user)(sAMAccountName=username))";
            String baseDN = "DC=example,DC=com";
            NamingEnumeration<SearchResult> results = ctx.search(baseDN, filter, null);
            
            if (results.hasMore()) {
                SearchResult searchResult = results.next();
                Attributes attributes = searchResult.getAttributes();
                // 处理属性...
            } else {
                System.out.println("No such object found.");
            }
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
}

应用场景

LDAP通常用于企业环境中,以便集中管理用户身份验证和授权。它可以用于单点登录(SSO)、用户目录查询等多种场景。

优势

  • 集中管理:所有用户信息存储在一个中心位置,便于管理和维护。
  • 高效查询:LDAP设计用于快速检索目录信息。
  • 跨平台支持:LDAP是跨平台的,可以在不同的操作系统和应用程序之间共享用户信息。

通过上述步骤和示例代码,您应该能够诊断并解决“LDAP:错误代码32 -没有此类对象”的问题。如果问题仍然存在,建议进一步检查LDAP服务器的日志文件,以获取更详细的错误信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 AD 诱饵检测 LDAP 枚举和Bloodhound 的 Sharphound 收集器

一旦包含所有 Active Directory 对象、组、会话、信任等结果的压缩文件被收集并导入 Bloodhound,它就会使用图论进行数据可视化,在后端运行 Neo4j 图形数据库。...image.png 现在,攻击者使用从 Active Directory(使用 SharpHound)收集的信息来理解 AD 数据并对其进行分析以了解目标组织的 AD 结构,并找出各种有趣的事实和快捷路径以访问域管理员和不同主机上的用户权限等...在后端,Sharphound 使用 LDAP 查询从 Active Directory 收集数据,如您在代码中所见: https://github.com/BloodHoundAD/SharpHound...我们将查看它在后端运行的 LDAP 查询,并将尝试检测 Sharphound 枚举以及 LDAP 查询是否在没有 Sharphound 的情况下发送。...创建诱饵来检测此类活动的原因是,当域枚举完成并枚举 Active Directory 对象数据时,它还包括诱饵帐户。

2.7K20

LDAP轻量目录访问协议详解

LDAP://DomainIP/DN1)LDAP> :LDAP协议。2):所要连接的域控制器的IP或者域名。3):标识名称,用户标识对象在活动中的完整路径。...3.LDAP目录结构LDAP目录服务是由目录数据库和一套访问协议组成的系统,Microsoft Active Directory其实是微软对目录服务数据库的实现,Active Directory里面存放着整个域里的所有配置信息...3)DN:一个条目的分辨名叫做“DN”,“DN”相当于关系型数据库表中的“主键”,通常用于检索。...4.LDAP名称路径通常情况下,Active Directory会利用LDAP命名路径(LDAP naming path)来表明要访问的对象在 Active Directory 所属的位置,以便在客户端在通过...5.DN标识名称标识名称(Distinguished Names,DN):是对象在Active Directory内的完整路径,DN 有三个属性,分别是 CN(公共通用名称)、OU(组织单位)、DC(域名组件

4.4K21
  • windows server2016搭建AD域服务器

    程序使用的keystore文件1.导出证书,供客户端连接使用,举例命名为adserver.cer2.执行以下命令,使用上一步骤导出的证书文件生成供java 程序使用的keystore文件keytool...@1993四、导出某用户的keytab文件1.在AD域服务器的服务器管理器-工具-Active Directory 用户和计算机 管理面板中新建一个测试用户testuser52.在AD域服务器中以管理员权限打开命令提示符程序...连接ldap实现用户查询功能6.java连接kerberos用户认证7.javax.security.auth.login.LoginException: Unable to obtain password....LDAP: error code 32 - No Such Object17.java: 无法访问org.springframework.ldap.core.LdapTemplate18.windows...server2016搭建AD域服务器19.java连接AD(Microsoft Active Directory)模拟用户登录认证

    14100

    AD域和LDAP协议

    它为用户管理网络环境各个组成要素的标识和关系提供了一种有力的手段 Active Directory存储了有关网络对象的信息,并且让管理员和用户能够轻松地查找和使用这些信息。...Active Directory使用了一种结构化的数据存储方式,并以此作为基础对目录信息进行合乎逻辑的分层组织。...Active Directory 域内的 directory database(目录数据库)被用来存储用户账户、计算机账户、打印机和共享文件夹等对象,而提供目录服务的组件就是 Active Directory...组策略和Active Directory结合使用,可以部署在OU,站点和域的级别上,当然也可以部署在本地计算机上,但部署在本地计算机并不能使用组策略中的全部功能,只有和Active Directory配合...4.2 什么是组策略对象 组策略是通过“组策略对象(GPO)”来设定的,只要将GPO连接到指定的站点、域或OU、该GPO内的设定值就会影响到该站点,域或OU内的所有用户于计算机。

    5.3K20

    LDAP认证模式简介1. 目录服务2. LDAP特点3. LDAP组织数据的方式4. 基本概念

    Directory Access Protocol)的缩写,LDAP是从X.500目录访问协议的基础上发展过来的,目前的版本是v3.0。...与LDAP一样提供类似的目录服务软件还有ApacheDS、Active Directory、Red Hat Directory Service 。 2....通常对LDAP的添加、删除、更改、检索都是以条目为基本对象的。...openldap 2.4版本的模块是动态加载的,所以在使用backend时需要moduleload back_bdb指令。 bdb是一个高性能的支持事务和故障恢复的数据库后端,可以满足绝大部分需求。...许多旧文档里(包括官方)说建议将bdb作为首选后端服务(primary backend),但2.4版文档明确说hdb才是被首先推荐使用的,这从 2.4.40 版默认安装后的配置文件里也可以看出。

    3.1K41

    内网渗透测试:活动目录 Active Directory 的查询

    Active Directory,我们可以通过连接域控的指定端口(636端口是LDAPS)来进行访问、查询与修改。...ADSI Edit 适用于编辑 Active Directory 中的单个对象或少量对象。ADSI Edit 不具备搜索功能。...因此,必须预先知道要编辑的对象及其在 Active Directory 中的位置。...我们可以使用 AD Explorer 工具连接域控来访问活动目录,它可以方便的帮助用户进行浏览 Active Directory 数据库、自定义快速入口、查看对象属性、编辑权限、进行精确搜寻等操作。...由于 objectCategory 建立索引,所以查询时间比较快,在对 Active Directory 进行查询时可以将二者结合使用以提高查询效率。 Ending……

    2.5K20

    配置客户端以安全连接到Kafka集群–LDAP

    身份目录服务(例如Active Directory,RedHat IPA和FreeIPA)支持Kerberos和LDAP身份验证,并且为Kafka集群启用了这两种功能,从而为客户端提供了处理身份验证的不同选择...但是,在Active Directory中,默认情况下,专有名称的格式为: CN=Smith, John, ou=users, dc=mycompany, dc=com 它们包含用户的全名而不是用户ID...幸运的是,对于Active Directory ,除专有名称外,用户名> @ 也是有效的LDAP用户名。...如果使用的是Active Directory,则可以将LDAP用户DN模板设置为以下模板(使用上面的mycompany.com示例): {0}@mycompany.com 如果您的LDAP目录不接受可以如上所述构造的用户名...示例 以下是使用Kafka控制台使用者使用LDAP身份验证从主题读取的示例: # Complete configuration file for LDAP auth $ cat ldap-client.properties

    4.8K20

    07-如何为Hue集成AD认证

    域服务》、《02-Active Directory安装证书服务并配置》、《03-Active Directory的使用与验证》、《04-如何在RedHat7上配置OpenLDAP客户端及集成SSSD服务和集成...选择身份验证方式 LDAP URL ldap://adserver.fayson.com 访问AD的URL 使用搜索绑定身份验证 true 登录时创建LDAP用户 true LDAP搜索基础 dc...上面的配置方式主要是为了使用hue的超级管理员同步AD中的一个用户并将该用户设置为超级用户,这样我们将Hue的身份验证后端修改为LDAP方式,也有相应的超级用户登录hue进行用户同步。...5.进入Hue服务的配置界面将“身份验证后端”修改为LDAP认证方式 ? 6.保存配置并重启Hue服务,接下来使用huesuper用户登录Hue进行用户同步 ? hiveadmin用户同步成功 ?...4.Hue中集成Hive和Impala ---- 注意:如果Hive/Impala已设置了LDAP认证,需要在Hue中增加以下设置,否则Hue无法正常连接Hive或Impala进行查询, 1.通过CM在

    2.6K30

    内网渗透-活动目录利用方法

    这实际上意味着您现在可以将新用户添加到该组中。 但是,好像无法使用Active Directory模块和Set-Acl / Get-Acl cmdlets来赋予权限。...因此,我们知道记录存在,只是无法使用LDAP进行查询。 一旦我们通过LDAP枚举确定记录存在,我们可以直接使用DNS进行查询(因为执行常规的DNS查询不需要特权)。...WinRM、RDP和IIS都支持使用Schannel进行客户端身份验证,但需要额外的配置,并且在某些情况下(例如WinRM),无法与Active Directory集成。...在上述示例配置中,客户端正在连接http://web1,以便访问存储在后端SQL服务器SQL1上的数据。Web页面托管了从SQL检索数据的代码。用户账户用于对Web服务器进行身份验证。...正如您所看到的,用户名和密码从 LDAP 客户端传递到服务器。

    20910

    08-如何为Navigator集成Active Directory认证

    域服务》、《02-Active Directory安装证书服务并配置》、《03-Active Directory的使用与验证》、《04-如何在RedHat7上配置OpenLDAP客户端及集成SSSD服务和集成...Kerberos 前置条件 1.Active Directory已安装且正常使用 2.测试环境描述 ---- Fayson在前面介绍了《Cloudera Navigator介绍与安装》,这里就不再重复讲...Active Directory LDAP URLnav.ldap.url ldap://adserver.fayson.com 配置AD URL LDAP 绑定用户可分辨名称nav.ldap.bind.dn...QAZ 账号密码 Active Directory 域nav.nt_domain fayson.com AD的域名 LDAP 用户搜索库nav.ldap.user.search.base OU=Cloudera...testa用户拥有的权限 ? 5.使用testb用户所属组为groupb,未分配角色的组登录测试,提示用户没有权限访问 ?

    1.4K40

    Spring Boot集成AD域实现统一用户认证

    1.3 AD域与LDAP的区别 Windows AD(Active Directory)域应该是LDAP的一个应用实例,而不应该是LDAP本身。...Windows AD域的用户、权限管理应该是微软公司使用LDAP存储了一些数据来解决域控这个具体问题,AD域提供了相关的用户接口,我们可以把AD域当做微软定制的LDAP服务器。...Active Directory先实现一个LDAP服务器,然后自己先用这个LDAP服务器实现了自己的一个具体应用。 2....在项目应用配置文件application.yml中添加AD域配置 使用Spring Data Ldap项目包连接LDAP服务器可以采用以下的配置方式: spring: ldap:... { } 通过上面3和4两个步骤的定义之后,已经将User对象与AD域存储的内容实现了实体映射关系,我们只需要使用UserDao就可以轻松的对LDAP的相应内容实现读写操作

    3.1K30

    【内网渗透】域渗透实战之 cascade

    枚举 LDAP来收集有用信息。发现dc名发现一个账号的疑似密码通过base64加密。解密获得一个密码。尝试通过 WinRM 连接,但没有成功。...打开与作为参数传递的数据库的 SQLite 连接,从 LDAP 表中读取数据,并解密密码。我决定通过调试恢复明文密码。图片看到解密的密码:WinRM登录继续使用WinRM来获取shell。...如何从 AD 回收站恢复对象在 Windows Server 2012 之前,从 AD 回收站还原对象需要使用 LDAP 工具或 PowerShell 列出所有已删除的对象,筛选长列表以找到所需的对象,...回收站还有一些额外的缺点:启用 Active Directory 回收站涉及架构更改。因此,一旦打开回收站,如果没有完整的林恢复,就无法将其关闭。Active Directory 将会变得更大一些。...属性 定义了从 Active Directory 中永久删除已删除对象之前的天数。

    38520

    LDAPFragger:一款功能强大的命令控制C&C工具

    关于LDAPFragger LDAPFragger是一款功能强大的命令控制C&C工具,可以帮助广大研究人员使用用户属性和LDAP来路由Cobalt Strike信标数据。...这些网络包含连接到同一活动目录域的工作站,但是只有一个网段可以连接到外网。为了使用Cobalt Strike远程控制这两个网段中的工作站,我们构建了一个工具,该工具使用共享活动目录组件来构建通信通道。...--cshost: Cobalt Strike实例的IP地址或主机名 --csport: Cobalt Strike服务器的外部C2实例端口 -u: 连接活动目录使用的用户名...-p: 连接活动目录使用的密码 -d: 活动目录域的FQDN --ldaps: 使用LDAPS代替LDAP -v:...LDAPFragger/blob/master/LDAPChannel.ps1 https://www.harmj0y.net/blog/powershell/command-and-control-using-active-directory

    53320

    CVE-2021-27927: Zabbix-CSRF-to-RCE

    源自恶意网站的请求对于受害人的浏览器来说是合法的,因此,受害人的浏览器将用户的会话cookie与请求一起发送。 恶意请求到达目标Web应用程序。目标Web应用程序无法判断该请求来自恶意源。...这些令牌是随机生成的数据,作为请求的一部分从应用程序的前端代码发送到后端。后端同时验证反CSRF令牌和用户的会话Cookie。令牌可以作为HTTP标头或在请求正文中传输,但不能作为Cookie传输。...的Active Directory服务器。我们还在Active Directory中为用户提供了一个名为“ Admin”的用户(与内置的Zabbix管理员用户名匹配),密码为“ Z@bb1x!”。...这是因为Zabbix使用测试用户和密码来验证LDAP服务器连接,这是处理身份验证设置表单提交的一部分。攻击者可以通过Zabbix应用程序连接到他/她自己的LDAP服务器来立即知道CSRF攻击是否成功。...然后从仪表板页面执行脚本: ? 要获得反向shell: ? 根据配置,攻击者还可以在服务器代理或代理上运行远程命令。更多细节在这里从的zabbix文档。

    1.8K30

    内网协议NTLM之内网大杀器CVE-2019-1040漏洞

    Exchange Windows Permissions组可以通过WriteDacl方式访问Active Directory中的Domain对象,该对象允许该组的任何成员修改域权限,从而可以修改当前域ACL...而此攻击链中攻击者删除了数据包中阻止从SMB转发到LDAP的标志。...4.构造请求使Exchange Server向攻击者进行身份验证, 并通过LDAP将该身份验证中继到域控制器,即可使用中继受害者的权限在Active Directory中执行操作。...(因为任何经过身份验证的用户都可以触发SpoolService反向连接) 漏洞利用攻击链 1.使用域内任意帐户,通过SMB连接到被攻击域控服务器,并指定中继攻击服务器。...Exchange Windows Permissions组可以通过WriteDacl方式访问Active Directory中的Domain对象,该对象允许该组的任何成员修改域权限,从而可以修改当前域ACL

    6.6K31

    MICROSOFT EXCHANGE – 防止网络攻击

    Microsoft Exchange 服务器是威胁参与者的常见目标,不仅因为它们提供了多个入口点,而且因为它们在绑定到 Active Directory 时提供了持久性和域升级的机会。...Outlook Web Access 使域用户能够从外部访问其邮箱。但是,如果业务需要,则应评估 Exchange Web 服务和 Exchange ActiveSync。...影响是检索电子邮件和冒充用户,这将允许内部网络钓鱼攻击。...Microsoft 已发布补丁,通过降低对 Active Directory 的权限来修复各种版本的 Exchange 服务器的问题。...强制执行 LDAP 签名和 LDAP 通道绑定 与 Microsoft Exchange 相关的各种攻击滥用与 Active Directory 存在的信任关系,以修改权限并获得提升的访问权限。

    4.2K10
    领券