В результатах LDAP и Active Directory отсутствуют поля для некоторых результатов

При запросе LDAP к нашей структуре Active Directory для поиска учетных записей пользователей в некоторых записях (но не во всех) отсутствуют определенные ключевые поля, в частности memberOf и userAccountControl (у которого есть битовый флаг, указывающий, отключена ли учетная запись).

Вот несколько уточняющих деталей:

  • Если запрос настроен на фильтрацию по любому из этих полей (например, получение списка неотключенных учетных записей в группе отдела маркетинга), они исчезают из набора результатов (поскольку, что касается AD, они отсутствуют) .

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

  • Записи с проблемой составляют от 1/4 до 1/3 от общего числа пользовательских записей. Большинство действительно кажутся более новыми записями (какое-то время мы думали, что это, возможно, было связано с обновлением до 2003 на сервере контроллера домена), хотя некоторые старые записи, похоже, тоже затронуты.

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

Итак, я предполагаю, что существует какой-то набор запретов разрешений (возможно, на уровне схемы?), Который ограничивает определенные поля. Следует отметить, что администраторы домена никогда сознательно не устанавливали такие разрешения.

ОБНОВЛЕНИЕ / РЕШЕНИЕ: ADSI Edit (в средствах поддержки Windows 2003) помог мне решить проблему с изменением разрешений по умолчанию для роли прошедшего проверку подлинности пользователя. Для некоторых людей роль содержала ограничения для чтения учетной записи (которые содержат userAccountControl) и членство в группе чтения (memberOf), а для других - нет.

Первоначальная причина разницы до сих пор не ясна, хотя тот факт, что большинство «плохих» записей были созданы после перехода на Windows 2003 для контроллера домена, это могло быть фактором.

РЕШЕНИЕ: Это еще не решено, но, скорее всего, это будет обновленная групповая политика в сочетании со сценарием для обновления существующих учетных записей.


person Otus    schedule 13.11.2008    source источник


Ответы (2)


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

person Igal Serban    schedule 19.11.2008

Интересно то, что оба предложенных вами атрибута доступны только для чтения. Член (атрибут группы) поддерживается в Active Directory. Значение MemberOf для пользователя вычисляется на основе запроса и фактически не сохраняется статически в объекте пользователя.

Я почти уверен, что userAccountControl также доступен только для чтения через LDAP. (Для непосредственного управления им необходимы другие подходы.)

Не уверен, что это поможет, но может быть подсказкой в ​​правильном направлении. (Или совершенно неправильно ..)

person geoffc    schedule 20.11.2008