Преобразование фильтра 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