Преобразование фильтра LDAP в фильтр подключений SharePoint Server 2010

Преобразование фильтра LDAP в фильтр подключений SharePoint Server 2010

Когда вы настраиваете синхронизацию профилей между поставщиком LDAP, таким как AD DS, и SharePoint Server 2010, у вас уже может быть фильтр LDAP, который нужно преобразовать в фильтр подключений SharePoint. Этот пост содержит пример преобразования фильтра LDAP в фильтр подключений SharePoint. Инструкции о вводе фильтра подключений с помощью пользовательского интерфейса SharePoint см. в разделе, посвященном определению фильтров исключения для подключения синхронизации, в статье о настройке синхронизации профилей.

Фильтры LDAP определяют объекты каталога, которые нужно включить. Фильтры подключений SharePoint определяют пользователей, которых нужно исключить.

Давайте возьмем фильтр LDAP и посмотрим, как можно преобразовать его в фильтр подключений SharePoint 2010. Ниже приведен пример фильтра, который мы будем использовать:

  • База поиска: DC=cts,DC=contoso,DC=com
  • Фильтр пользователей: (&(objectCategory=Person)(!userAccountControl:1.2.840.113556.1.4.803:=2) (&(!extensionAttribute1=0)(extensionAttribute1=*)(sAMAccountName=*)(memberOf=CN=SharePoint Users,OU=Security,OU=Groups,DC=cts,DC=contoso,DC=com)))

Давайте преобразуем фильтр LDAP в сочетание простых логических инструкций, чтобы нам было проще с ними работать:

  • A: objectCategory = Person
  • B: userAccountControl:1.2.840.113556.1.4.803:=2
  • C: extensionAttribute1=0
  • D: extentionAttribute1=*
  • E: sAMAccountName=*
  • F: memberOf= CN=SharePoint Users, OU=Security, OU=Groups, DC=cts, DC=contoso,DC=com

Приведенный выше фильтр теперь можно представить следующим образом: A ∧ ¬B ∧ (¬C ∧ D ∧ E ∧ F),
где ∧ представляет AND, ∨ представляет OR, и ¬ представляет NOT.

В следующей таблице показано, как работать с булевой алгеброй.

Исходный фильтр LDAP

A ∧ ¬B ∧ (¬C ∧ D ∧ E ∧ F)

Удалить скобки

A ∧ ¬B ∧ ¬C ∧ D ∧ E ∧ F

Обратить фильтр, чтобы сделать его фильтром исключения

¬ (A ∧ ¬B ∧ ¬C ∧ D ∧ E ∧ F)

Упростить, используя закон де Моргана

¬A ∨ ¬¬B ∨ ¬¬C ∨ ¬D ∨ ¬E ∨ ¬F

Удалить двойные отрицательные

¬A ∨ B ∨ C ∨ ¬D ∨ ¬E ∨ ¬F

Если мы заменим A, B, C, D, E, F инструкциями, с которых мы начали, мы получим следующее:

(NOT (objectCategory = Person))
OR (userAccountControl:1.2.840.113556.1.4.803: = 2)
OR (extensionAttribute1 = 0)
OR (NOT (extensionAttribute1 = *))
OR (NOT (sAMAccountName = *))
OR (NOT (memberOf = CN=SharePoint Users,OU=Security,OU=Groups,DC=cts,DC=contoso,DC=com))

Перезаписав эти выражения в формате, в котором можно ввести их в пользовательском интерфейсе фильтра подключений SharePoint, мы получим следующее:

AND/OR

Атрибут

Оператор

Фильтр

OR

objectCategory

не равно (does not equal)

Person

OR

userAccountControl

установленный бир равен (bit on equals)

2

OR

extensionAttribute1

равно (equals)

0

OR

extensionAttribute1

отсутствует (is not present)

OR

sAMAccountName

отсутствует (is not present)

OR

member

не содержит (does not contain)

CN=SharePoint Users, OU=Security, OU=Groups, DC=cts, DC=contoso, DC=com

Первое предложение фильтра, objectCategory не равно (does not equal) Person, не является обязательным. При создании фильтра подключений для синхронизации пользователей в SharePoint автоматически исключаются записи, в которых objectCategory не равен Person. Когда вы создаете фильтр подключений, используйте значения в остальных пяти строках предыдущей таблицы для ввода значений в разделе Фильтр исключения для пользователей (Exclusion Filter for Users) страницы "Изменение фильтров подключений ( Edit Connection Filters)".

Большое спасибо Олегу Лысюку (Oleg Lysyk) за оригинальную версию этой информации.

 

Это локализованная запись блога. Исходная статья находится по адресу Converting an LDAP filter to a SharePoint Server 2010 connection filter