`

[转载]How to write LDAP search filters

 
阅读更多
This document outlines how to go about constructing a more sophisticated filter for the userSearchFilter and groupSearchFilter attributes in your AtlassianUser LDAP config file.


Once you have constructed your search filter using this document, you must escape the ampersand symbol and the exclamation mark symbol before adding to your XML file. So for example,

(&(objectClass=person)(!(objectClass=user)))

becomes

(&(objectClass=person)(!(objectClass=user)))

Refer to this external documentation on other XML characters that need escaping.
How do I match more than one attribute?

For example, if my users are distinguished by having two objectClass attributes (one equal to 'person' and another to 'user'), this is how I would match for it:
(&(objectClass=person)(objectClass=user))

Notice the ampersand symbol '&' symbol at the start. Translated this means: search for objectClass=person AND object=user.

Alternatively,
(|(objectClass=person)(objectClass=user))

Translated this means: search for objectClass=person OR object=user.

The pipe symbol '|' denotes 'OR'. As this is not a special XML character, then it should not need escaping.
Wildcards
(&(objectClass=user)(cn=*Marketing*))

This means: search for all entries that have objectClass=user AND cn that contains the word 'Marketing'.
How do I match 3 attributes?

This gets a little tricky:

(&(&(objectClass=user)(objectClass=top))(objectClass=person))

Notice how we weave one query into another. For 4 attributes, this would be:

(&(&(&(objectClass=top)(objectClass=person))(objectClass=organizationalPerson))(objectClass=user))

And so on.
Matching Components of Distinguished Names

You may want to match part of a DN, for instance when you need to look for your groups in two subtrees of your server.
(&(objectClass=group)(|(ou:dn:=Chicago)(ou:dn:=Miami)))

will find groups with an OU component of their DN which is either 'Chicago' or 'Miami'.
Using 'not'

To exclude entities which match an expression, use '!'. Note that this must be represented as the entity '!' in your XML file.

So
(&(objectClass=group)(&(ou:dn:=Chicago)(!(ou:dn:=Wrigleyville))))

will find all Chicago groups except those with a Wrigleyville OU component.

Note the extra parentheses: (!(<expression>))

concatsymbolXML

AND&&amp;

NOT!&#33;

OR
???
分享到:
评论

相关推荐

    RFC 2254 The String Representation of LDAP Search Filters(中文版)

    总之,《RFC 2254:LDAP查询过滤器的字符串表示法》为理解和实现LDAP中的查询过滤器提供了一个详尽的框架,不仅对理论进行了深入探讨,还提供了实用的示例和指导,是开发基于LDAP应用的重要参考资料。

    C#.NET LDAPSearch

    标题"C#.NET LDAPSearch"揭示了我们正在讨论的是一个基于C#.NET开发的Windows桌面应用程序,专注于LDAP(轻量级目录访问协议)搜索功能。在Winform环境下,开发者创建了一个用户界面,允许用户查询和浏览LDAP目录...

    How to connect to LDAP with c# or Java

    **LDAP(轻量级目录访问协议)是一种网络协议,用于访问和管理分布式目录服务。它在各种企业环境中广泛用于存储用户账户、组信息和其他组织数据。C#和Java是两种常用的语言,它们都有库和API支持与LDAP服务器进行...

    The ABCs of LDAP How to Install, Run,and Administer LDAP Services

    该书向读者介绍了LDAP(Light Directory Access Protocol,轻量级目录访问协议),并且从概念、安装、运行和维护等多个方面对LDAP进行阐述。 建议Linux用户配合着我上传的另一份ldap书看 download.csdn.net/detail...

    debian下ldap服务器配置

    # ldapsearch -x -b '' -s base '(objectclass=*)' ``` 如果看到有相关信息输出,就说明 OpenLDAP 已经正常运行了。 步骤5:建立根 最后,需要建立根目录。使用以下命令: ``` # touch base.ldif ``` 并编辑 `base...

    LDAP入門LDAP入門LDAP入門

    - **ldapsearch**:用于执行LDAP查询。 - **ldapadd**:用于向LDAP目录中添加新条目。 - **ldapmodify**:用于修改现有条目。 - **ldappasswd**:用于更改用户的密码。 ### 参考书目 - 《LDAP System ...

    Solrj and Solr and LDAP and SearchEngine

    Solr能够处理大量数据,并支持多种类型的搜索,如全文检索、空间搜索、拼写检查和 faceted search(分面搜索)。Solrj就是用来与Solr服务器通信的工具,允许开发者通过Java代码来利用Solr的各种功能。 【LDAP】 ...

    LdapBrowser ldap连接工具

    **LDAP浏览器:深入理解与应用** LDAP(轻量级目录访问协议)是一种用于查询和管理分布式目录服务的网络协议,广泛应用于企业环境中的用户身份验证、权限管理和数据共享。LdapBrowser是一款专为开放源代码的...

    Ldap数据导出到文件

    通过使用ldapsearch命令,我们可以从特定的DN开始检索数据,并将其转换为LDIF格式。例如: ``` ldapsearch -x -LLL -H ldap://localhost -b "cn=your_node,dc=example,dc=com" -D "cn=admin,dc=example,dc=...

    LdapBrowser2.82版和LDAP使用手册

    **LDAP简介** LDAP,全称为轻量级目录访问协议(Lightweight Directory Access Protocol),是一种用于访问和管理分布式目录服务的标准网络协议。它主要用于存储和检索用户、组织、资源等信息,广泛应用于身份验证...

    ldap账号迁移流程

    1. **导出数据**:在旧服务器上使用`ldapsearch`命令导出所有LDAP数据。 ```bash ldapsearch -x -b "dc=abc,dc=com" &gt; export.ldif ``` 2. **导入数据**:将导出的数据文件传输至新服务器,并使用`ldapadd`命令...

    phpLdap.rar

    $search_result = ldap_search($ldap_conn, $search_base, $search_filter); // 处理搜索结果 if ($search_result) { $entry = ldap_first_entry($ldap_conn, $search_result); while ($entry) { $attributes = ...

    ldap 浏览器 LdapBrowser282

    **LDAP浏览器LdapBrowser282详解** LDAP(Lightweight Directory Access Protocol)是一种用于访问目录服务的协议,常用于组织和管理用户、组、资源等信息。LdapBrowser282是一款专门针对LDAP目录服务的浏览和管理...

    ldap安装与客户端ldapadmin windows

    **LDAP(轻量级目录访问协议)是一种网络协议,用于访问和管理分布式目录服务。它在各种操作系统上广泛使用,包括Windows。本文将详细介绍在Windows环境下安装LDAP服务器以及使用 LDAP 客户端工具 LdapAdmin 的步骤...

    ldap.zip_LDAP DELPHI_delphi ldap

    【LDAP与DELPHI在开发电话簿应用中的整合】 LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,常用于存储和检索用户、组织等结构化数据。它允许客户端通过TCP/IP协议来访问分布式目录服务...

    ldap的离线安装包及安装方法

    使用 `ldapsearch` 工具来验证 LDAP 服务器是否正常工作。例如,搜索 rootDN: ``` ldapsearch -x -LLL -h localhost -b "dc=example,dc=com" -D "cn=admin,dc=example,dc=com" -w yourpassword ``` 7. **创建...

    使用Python读取Ldap中的用户名

    ldap_result_id = conn.search(baseDN, searchScope, searchFilter, retrieveAttributes=None) result_set = [] data = '' while 1: result_type, result_data = conn.result(ldap_result_id, 0) if result_...

    java连接和验证ldap文档

    Java 连接和验证 LDAP 文档 Java 连接和验证 LDAP 文档是一份关于 Java 语言连接和验证 LDAP 服务器的学习文档。LDAP(Lightweight Directory Access Protocol)是一种目录访问协议,用于管理和访问目录服务中的...

    LDAP和SVN集成

    LDAP 和 SVN 集成 在 Linux 下配置 LDAP Server 和 Client,实现统一的账号管理认证平台。LDAP 是 C/S 结构的,因此需要设计好哪台机器上搭建 LDAP Server,剩下的机器上安装 LDAP Client。 一、LDAP Server 配置 ...

Global site tag (gtag.js) - Google Analytics