Групповой импорт из Active Directory через LDAP - PullRequest
0 голосов
/ 28 августа 2011

Мы используем LDAP для аутентификации пользователей на больших установках Active Directory. Мы хотим извлечь список всех групп из Active Directory, чтобы их можно было отразить в локальной базе данных и сопоставить группы AD пользователей с локальными группами.

Однако, когда мы запускаем запрос ldap, чтобы получить список всех групп, Active Directory ограничивает максимальные результаты для нашего поиска.

Какова наилучшая стратегия получения этой информации с учетом ограничений на размер результата запроса? Можем ли мы использовать какую-либо форму подкачки запросов?

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 28 августа 2011

Active-Directory поддерживает управление разбиением на страницы. Вы должны обратиться к официальной статье Microsoft: Поиск в каталоге ans especialy Размер поиска и размер страницы

0 голосов
/ 28 августа 2011

Если вы используете .NET 3.5 и выше, вы должны проверить пространство имен System.DirectoryServices.AccountManagement (S.DS.AM).Прочитайте все об этом здесь:

Вы можете использовать PrincipalSearcher и принцип «запрос по примеру» для выполнения поиска:

// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// define a "query-by-example" principal - here, we search for any GroupPrincipal 
GroupPrincipal qbeGroup = new GroupPrincipal(ctx);

// create your principal searcher passing in the QBE principal    
PrincipalSearcher srch = new PrincipalSearcher(qbeGroup);

// to get around the 1'000 or so object limit - you need to "go deep" and
// set the page size on the underlying DirectorySearcher to e.g. 500
(searcher.GetUnderlyingSearcher() as DirectorySearcher).PageSize = 500;

// find all matches
foreach(var found in srch.FindAll())
{
    // do whatever here - "found" is of type "Principal" - it could be user, group, computer.....          
}

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

0 голосов
/ 28 августа 2011
Для этого можно использовать

A простой постраничный запрос результатов .Ключевым моментом будет обеспечение того, чтобы запрошенный размер страницы не превышал максимальный размер результатов для вашего экземпляра Active Directory.

Оболочки ADO для ADSI, например, автоматически отображают результаты на страницах, пример которых может здесь , хотя, очевидно, это может работать или не работать в зависимости от вашего технологического стека.

...