Отключенные учетные записи и PeoplePicker

В сегодняшнем посту я расскажу о контроле выбора пользователя и отключенных учетных записях. Если конкретней, то о том как сделать так, чтобы нельзя было выбирать пользователей, учетные записи которых отключены.

Стандартное поведение

Для начала посмотрим как это работает в SharePoint 2010 без нашего вмешательства. Для этого создадим список на портале и добавим туда поле для выбора пользователя: Поля списка DisabledUsersTestList Также нам понадобится учетная запись в домене.

Создадим новую запись в списке. Здесь ничего нового, просто элемент из контрольной группы. Поля списка DisabledUsersTestList

Теперь заблокируем учетную запись и создадим новый элемент в нашем списке. В поведении SharePoint ничего не изменилось. SharePoint плевать отключена учетная запись или нет. Теперь надо сделать так, чтобы такой сценарий был не возможен в нашей системе

Фильтр для PeoplePicker

Фильтр для выбора пользователей накладывается с помощью свойства stsadm Peoplepicker-searchadcustomfilter. Синтаксис (из technet):

stsadm -o setproperty

   -propertyname peoplepicker-searchadcustomfilter

   -propertyvalue <строка пользовтельского запроса>

   [-url] <URL-адрес>

Для операции getproperty используется следующий синтаксис:

stsadm -o getproperty

   -propertyname peoplepicker-searchadcustomfilter

   [-url] <URL-адрес>

-propertyvalue здесь является обычный LDAP-фильтр. Нас интересует фильтрация по признаку Disabled учетной записи. В LDAP это выглядит вот так:

(!userAccountControl:1.2.840.113556.1.4.803:=2))

Для начала проверим, что никаких фильтров нет и быть не может. Для этого исполним следующую команду:

stsadm -o getproperty -propertyname peoplepicker-searchadcustomfilter -url http://[server]

В моем случае я получил ответ о том, что нет такого свойство:

<Property Exist="No" />

Теперь зададим это свойство. Опять же в моем случае команда выглядит вот так:

stsadm -o setproperty -propertyname peoplepicker-searchadcustomfilter -url http://[server] -propertyvalue "(!userAccountControl:1.2.840.113556.1.4.803:=2))"

Вот теперь выбрать пользователей, учетная запись которых отключена нельзя. Здесь есть один нюанс: Учетную запись можно будет выбрать, если пользователь есть в списке пользователей узла. Для проверки работы фильтра удалим пользователя home\firedemployee из списка пользователей. В очередной раз попробуем выбрать нашего пользователя и увидим примерно следующее: Поля списка DisabledUsersTestList

Теперь отключенные учетные записи неприменимы на нашем портале. Справедливость восстановлена.


Поделиться

Коментарии