Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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

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

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

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