Синхронизация между приложением c # и Active Directory - PullRequest
0 голосов
/ 24 января 2011

Я занимаюсь разработкой приложения, которое управляет информацией о пользователях и сохраняет данные на SQL Server.Я хотел бы как-то связать это приложение с нашей Active Directory, поэтому все изменения, которые будет вносить это приложение, будут отражены и в Active Directory (если мы добавим нового пользователя в приложение, оно будет добавлено также в ActiveДиректория)

Возможно ли это?если да, то какие у меня варианты?

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

Ответы [ 3 ]

4 голосов
/ 24 января 2011

Не делай этого.Пусть AD будет официальной копией вашей базы пользователей, и пусть пользователи всегда будут сначала создаваться в AD, а затем распространяться на SQL.Позволяя добавлять пользователей по другому пути (сначала SQL), вы открываете огромную банку червей в отношении безопасности.Если пользователь определен в SQL, но не в AD, что именно такое пользователь?Как он может войти?К каким группам он принадлежит?Разрешен ли ему доступ к этому ресурсу или нет?Как насчет случаев, когда пользователь добавляется в AD и в SQL с другими характеристиками, а затем вам нужно согласовать.AD, в соответствии с политиками AD и требованиями безопасности (сложность пароля является наиболее тривиальным примером).Затем пусть AD синхронизируется с SQL.

0 голосов
/ 24 января 2011

Если вы выполняете одностороннюю синхронизацию с AD, я согласен с Аароном в том, что у вас просто должен быть Trigger in SQL server.Обратите внимание, что это решение может страдать от некоторых проблем, например, учетные записи пользователей уже созданы, имя пользователя или пароль не соответствуют правилу сложности AD.Затем вам нужно найти несколько способов регистрации ошибки.Вам также может понадобиться инструмент для первоначальной подготовки учетных записей вашей базы данных.

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

Если вы разрабатываете решение для предприятия, вам следует поискатьСуществующие продукты для решения мета-каталогов от Microsoft, MIIS , ILM , FIM .

Это все одно и то же, за исключением названий, которые отличаются,Многие предприятия приняли это как мета-каталог.Вам просто нужно написать расширение для использования предоставляемых инфраструктур для синхронизации идентификаторов.

0 голосов
/ 24 января 2011

Я решил решить эту проблему, добавив событие, которое было вызвано при сохранении моего пользовательского объекта. Затем прослушиватель этого события отправит обновление в Active Directory. В моем случае я делал одностороннюю синхронизацию с Active Directory, и это была также лучшая попытка, то есть, если она не удалась, я был в порядке. Если вам нужно повысить надежность, вам понадобится обернуть обновления SQL внутри транзакции и фиксировать только после обновления активного каталога.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...