Karp 的技术博客

LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是一种用于访问和维护分布式目录服务的开放标准协议。它最初是为在网络上访问和管理目录信息而设计的。

目录是一种层次结构的数据库,用于存储和组织各种类型的信息,如用户、组织、设备等。LDAP提供了一种标准的方式来搜索、读取、修改和维护这些目录数据。

LDAP的设计目标是简单、高效和可伸缩。它使用客户端-服务器模型,其中客户端发出请求并与LDAP服务器进行通信,而服务器则处理请求并返回相应的结果。

LDAP协议基于TCP/IP协议栈,并使用基于字符串的协议元素进行通信。它使用特定的端口(默认是389端口)来监听客户端请求。

LDAP协议支持各种操作,包括:

  • 绑定(Bind):建立客户端与服务器之间的身份验证和安全关系。
  • 搜索(Search):根据特定的搜索条件在目录中查找匹配的条目。
  • 添加(Add):向目录中添加新的条目。
  • 修改(Modify):修改现有目录条目的属性值。
  • 删除(Delete):从目录中删除现有条目。
  • 比较(Compare):比较给定条目的属性值是否与指定值匹配。

LDAP广泛用于企业网络中的身份认证、用户管理、权限控制等方面。它也被许多应用程序和服务(如电子邮件、文件共享和VPN)用作集中式的用户和权限管理系统。

需要注意的是,LDAP是一种协议而不是特定的实现。常见的LDAP服务器实现包括OpenLDAP、Microsoft Active Directory和Novell eDirectory等。

总之,LDAP是一种用于访问和管理分布式目录服务的协议,它提供了一种标准的方式来搜索、读取、修改和维护目录中的信息。

本文讨论了轻量级目录访问协议 (LDAP) 查询,它在排查 Microsoft Exchange Server 及它与其目录之间关系的故障时十分有用,但是它也经常令人困惑不解。本文介绍了有关 LDAP 查询的基本信息。

基本 LDAP 语法

何时使用 LDAP 查询?

  • 使用“Active Directory 用户和计算机”执行搜索
  • 使用 LDP 执行搜索
  • 使用 LDIFDE 执行搜索
  • 在 ADModify 中使用 LDAP 查询

基本 LDAP 语法

  • =(等于)
    此 LDAP 参数表明某个属性等于某个值的条件得到满足。例如,如果希望查找“名“属性为“John”的所有对象,可以使用:
    (givenName=John)
    这会返回“名”属性为“John”的所有对象。圆括号是必需的,以便强调 LDAP 语句的开始和结束。
  • &(逻辑与)
    如果具有多个条件并且希望全部条件都得到满足,则可使用此语法。例如,如果希望查找居住在 Dallas 并且“名”为“John”的所有人员,可以使用:
    (&(givenName=John)(l=Dallas))
    请注意,每个参数都被属于其自己的圆括号括起来。整个 LDAP 语句必须包括在一对主圆括号中。操作符 & 表明,只有每个参数都为真,才会将此筛选条件应用到要查询的对象。
  • !(逻辑非)
    此操作符用来排除具有特定属性的对象。假定您需要查找“名”为“John”的对象以外的所有对象。则应使用如下语句:
    (!givenName=John)
    此语句将查找“名”不为“John”的所有对象。请注意:! 操作符紧邻参数的前面,并且位于参数的圆括号内。由于本语句只有一个参数,因此使用圆括号将其括起以示说明。
  • *(通配符)
    可使用通配符表示值可以等于任何值。使用它的情况可能是:您希望查找具有职务头衔的所有对象。为此,可以使用:
    (title=*)
    这会返回“title”属性包含内容的所有对象。另一个例子是:您知道某个对象的“名”属性的开头两个字母是“Jo”。那么,可以使用如下语法进行查找:
    (givenName=Jo*)
    这会返回“名”以“Jo”开头的所有对象。

以下是 LDAP 语法的高级使用示例:

  • 您需要一个筛选条件,用来查找居住在 Dallas 或 Austin,并且名为“John”的所有对象。使用的语法应当是:
    (&(givenName=John)(|(l=Dallas)(l=Austin)))
  • 您发现应用程序日志中有 9,548 个事件,因此需要查找导致这些日志事件的所有对象。在此情况下,您需要查找所有被禁用的用户 (msExchUserAccountControl=2),这些用户的 msExchMasterAccountSID 没有值。使用的语法应当是:
    (&(msExchUserAccountControl=2)(!msExchMasterAccountSID=*))

注意:

! 操作符与通配符的结合使用可查找属性未设置为任何值的对象。

版权属于:karp
作品采用:本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
更新于: 2024年10月17日 08:57
5

目录

来自 《LDAP 查询基本知识》
774 文章数
0 评论量
9 分类数
779 页面数
已在风雨中度过 9年277天3小时48分