Фильтры для DN. Особенности работы и примеры
Пользователи
- Универсальный фильтр по умолчанию:
(|(objectclass=posixAccount)(uid=*)(sAMAccountType=805306368)(&(objectCategory=person)(objectClass=user)))
- Только включенные пользо ватели:
(&(|(objectclass=posixAccount)(uid=*)(sAMAccountType=805306368))(objectCategory=person)(objectClass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
- Все пользователи
samaccountname
, имя которых начинается с my (можно использовать другой атрибут, содержащий строку) —(&(objectCategory=person)(objectClass=user)(samaccountname=my*))
- Все пользователи, являющиеся членами заданной группы:
(&(objectCategory=person)(objectClass=user)(memberOf=CN=MyGroup,OU=MyOU,DC=domain,DC=my))
- Все пользователи, являющиеся членами заданной группы, а также все пользователи, являющиеся членами вложенных групп:
(&(objectCategory=person)(objectClass=user)(memberOf:1.2.840.113556.1.4.1941:=CN=MyGroup,OU=MyOU,DC=domain,DC=my))
Группы
- Фильтр по умолчанию:
(|(objectclass=group)(objectclass=organizationalRole)(objectclass=posixGroup))
- Группы в опиcании которых содержится слово security:
(&(objectclass=group)(description=*security*))
- Группы, входящие в заданную группу:
(&(objectCategory=group)(objectClass=group)(memberOf=CN=MyGroup,OU=MyOU,DC=domain,DC=my))
- Группы, входящие в заданную группу, а также все вложенные группы:
(&(objectCategory=group)(objectClass=group)(memberOf:1.2.840.113556.1.4.1941:=CN=MyGroup,OU=MyOU,DC=domain,DC=my))
- Только группы безопасности:
(&(objectCategory=group)(objectClass=group)(groupType:1.2.840.113556.1.4.803:=2147483648))
- Только группы распространения —
(&(objectCategory=group)(objectClass=group)(!(groupType:1.2.840.113556.1.4.803:=2147483648)))
Особенности работы фильтров
- С помощью фильтров для DN можно загружать информацию о вложенных группах и пользователях, являющихся членами вложенных групп. При этом группы и ограничения входа применяются непосредственно к родительской группе, но не вложенным объектам;
- Выражение после логического оператора должно быть взято в скобки.
Пример:
(!(userAccountControl:1.2.840.113556.1.4.803:=2))
В продуктах компании Microsoft часто можно напрямую указать некоторые логические операторы.
Пример:
(!userAccountControl:1.2.840.113556.1.4.803:=2)
Поиск с подстановочным символом для групп не поддерживается. Это техническое ограничение большинства LDAP-серверов, поэтому фильтр вида (&(objectCategory=group)(objectClass=group)(memberOf=CN=My*,OU=MyOU,DC=domain,DC=my))
использовать невозможно.