Вот моя ситуация ...
Я пишу систему безопасности .Net / C # (авторизация и аутентификация) для большой коллекции веб-приложений, требующих единой регистрации. Я использую Active Directory в качестве хранилища данных и написал очень хороший прототип, который взаимодействует с AD через LDAP. Этот компонент извлекает информацию о зарегистрированном пользователе, которую я сохранил в AD, и затем использую ее для установки их ролей безопасности при проверке подлинности на основе форм .Net.
1) Все хорошо.
Не будучи системным администратором или сетевым инженером, я не был знаком с объемом системного администрирования, связанным с настройкой экземпляра AD. Я не знал, что для каждого домена мне нужен отдельный сервер и контроллер домена. Оказывается, что моей команде нужно настроить 9 разных доменов для всех разных сред, к которым мы собираемся обращаться в AD ...
- env1.dev.mycompany.com
- env1.qa.mycompany.com
- env1.stage.mycompany.com
- env2.dev.mycompany.com
- и т.д.
... Так что теперь я наложил на себя административную головную боль, потому что мне придется обслуживать все эти машины (или виртуальные машины), что я не обязательно уверен, что хочу делаем.
2) Все не хорошо.
Прототип действительно солидный, и AD делает его очень хорошей базой данных для решения, но теперь мне интересно, стоит ли мне отказаться от кода и написать провайдер данных SQL Server (я знаю, что .Net уже предоставляет такой, но это не соответствует моим бизнес-требованиям для авторизации).
В любом случае, поэтому я пытаюсь обдумать эту проблему с точки зрения высокого уровня. В общем, я продолжаю сомневаться в том, что я бы выбрал действительно хорошее решение только из-за некоторого обслуживания сервера? Мне интересно, сталкивался ли кто-нибудь здесь со сценарием, подобным этому, и что именно вы решили сделать.
Не должен быть специфичным и для AD, просто ситуация, в которой вы должны были оценить между хорошим программным решением и его ограничениями на обслуживание сервера.