`

[转载]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...

    LdapBrowser282.rar_LdapBrows_LdapBrowser.282_ldap_ldapBrowser_op

    标题中的"LdapBrowser282.rar_LdapBrows_LdapBrowser.282_ldap_ldapBrowser_op"指的是LdapBrowser的282版本的压缩文件,它包含了该软件的相关组件和可能的操作指南。LdapBrowser是一款专用于管理和查看OpenLDAP...

    LdapBrowser ldap连接工具

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

    Solrj and Solr and LDAP and SearchEngine

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

    Ldap数据导出到文件

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

    LDAP 应用程序接口

    - [4] RFC 4515 - Lightweight Directory Access Protocol (LDAP): String Representation of Search Filters #### 十二、作者地址 - LDAPChina.com #### 附录A、简单的LDAP API代码 以上示例代码展示了如何使用...

    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`命令...

    LdapAdmin---LDAP工具

    **LDAP(轻量级目录访问协议)是一种用于访问和管理分布式目录服务的协议,广泛应用于组织内部的身份验证、用户及资源管理。LdapAdmin是一款专为Windows操作系统设计的高效、稳定的LDAP管理工具,它允许管理员便捷地...

    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 = ...

    使用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_...

    ldap安装与客户端ldapadmin windows

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

    ldap 浏览器 LdapBrowser282

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

    简单的ldap客户端,可替代ldapAdmin

    **LDAP简介** LDAP(Lightweight Directory Access Protocol)是一种轻量级目录访问协议,常用于存储和检索用户账户、联系人信息、配置数据等结构化信息。它基于X.500标准,但设计得更为简单且适合互联网环境。LDAP...

    java连接和验证ldap文档

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

    LDAP的概念和原理

    常用的 LDAP 客户端工具有 ldapadd、ldapsearch 等。 LDAP 的身份认证 LDAP 提供了三种身份认证机制:匿名认证、基本认证和 SASL 认证。基本认证通过用户名和密码进行身份识别,又分为简单密码和 MD5 密码认证。 ...

Global site tag (gtag.js) - Google Analytics