Синхронизировать Active Directory с базой данных

Синхронизировать Active Directory с базой данных

Мы находимся в ситуации, когда мы хотели бы предложить нашим клиентам возможность управлять своими пользователями самостоятельно. Это около 300 клиентов с общим количеством пользователей до 10.000.

Помимо создания, обновления и удаления пользователей, они очень часто будут читать информацию о пользователях для получения статики и другой полезной информации. Вся эта функциональность должна быть доступна на веб-странице интрасети (.NET Framework 4), к которой пользователи будут получать доступ через Citrix или аналогичный.

Теперь проблема в том, что мы бы очень хотели, чтобы пользователи не запрашивали AD напрямую для каждого запроса, а вместо этого заставили бы их обращаться к базе данных, которая синхронизирована с AD. Было бы достаточно запускать эту синхронизацию несколько раз в день (может быть, каждые 5 часов). Когда они создают пользователя, он не должен быть доступен сразу, а должен быть проверен и затем создан в течение двух дней (следующим шагом будет удаление этого ручного просмотра, но это выходит за рамки этого вопроса).

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

Есть ли какие-либо методы для написания такого скрипта, который синхронизирует AD с таблицами базы данных? Меня больше всего волнуют отношения групп/участников, которые могут быть довольно сложными. Или есть программное обеспечение, которое синхронизирует AD с базой данных?

Любые комментарии будут высоко оценены. Спасибо.

решение1

Вы можете настроить Lightweight Directory Services (ранее ADAM) для репликации схемы и объектов AD во внешнюю базу данных LDAP, которую пользователи могут запрашивать и получать информацию, о которой вы говорите. Это позволяет вам быть конкретным в отношении того, что вы раскрываете внешне, синхронизируя только те объекты, которые вы хотите опубликовать, и не раскрывая другие объекты AD.

решение2

Синхронизация Active Directory с базой данных — довольно распространенная необходимость, не обязательно для описанного вами варианта использования, но чаще всего для компаний, управляющих своими сотрудниками с помощью HR-инструмента, который сохраняет их данные в базе данных.

Вы можете довольно легко синхронизировать содержимое базы данных с AD, используяКоннектор синхронизации LDAP (LSC)который является инструментом с открытым исходным кодом, специально разработанным для этой цели. Короче говоря, этот инструмент должен заменить тот скрипт, который вы могли бы написать вручную, за исключением ошибок, с которыми вы столкнетесь, и плюс различные функции, облегчающие синхронизацию.

Я настроил похожую синхронизацию из Oracle DB на сервер LDAP (помните, что AD также является сервером LDAP) для более чем 70.000 пользователей, включая членство в группах. После первой инициализации синхронизация прошла чуть меньше чем за 10 минут.

Следующая ссылка должна быть вам интересна, независимо от того, принимаете ли вы LSC или нет:Множество технических советов по синхронизации данных с/из Active Directory.

решение3

Если у вас есть некоторые навыки программирования, вы можете настроить и адаптироватьпссоод. Это содержит:

  • Скрипт Perl, который синхронизирует AD с сервером OpenLDAP или базой данных SQL.
  • АСервис для UnixДемон, который также позволяет синхронизировать пароли.

Связанный контент