Думаем внедрять кое-где Active Directory для управлением зоопарком машин и нормального разграничения прав пользователей. В компании около 200 компьютеров, несколько регионально распределенных офисов, пачка серверов. Основным бизнес-приложением этой компании является веб-сайт, который из непосредственно приложения вырос также в централизованную систему учета пользователей, полномочий в общем, стал пересекаться в сферах использования с Active Directory. Сама AD нужна в первую очередь для групповых политик и нормального управления правами доступа пользователей.
Веб-приложение данной компании работает на LAMP, сервер размещен в другой стране, в локальную сеть посредством VPN не включен, учетные данные пользователей и их привелегии хранятся в таблице MySQL в виде логина, пароля и пачки атрибутов прав доступа.
Для пользователей логичнее всего, если учетные данные в данном приложении и в AD будут одинаковые. Периодически (примерно раз в месяц, приурочено к собранию руководителей подразделений) пароли всех учеток в приложении сбрасываются и генерируются случайные новые, конечным пользователям учетные данные распространяют руководители. Новые учетки добавляют и удаляют старые в приложение также руководители подразделений. Администрировать и поддерживать консистентность учетных данных в AD и в приложении никто не будет.
Навскидку видится два решения:
- Синхронизация учетных данных между AD и приложением (каким образом???)
- Делегирование полномочий создания/удаления учетных данных в AD руководителям подразделений, автогенерация powershell-скрипта при создании/удалении учетной записи в приложении для создания/удаления учетной записи в AD, руководителю придется после каждого изменения запускать получившийся скрипт (какой-то ржавый велосипед + неясно, как сбрасывать пароли)
При чем со скриптом еще можно придумать что-нибудь "красивенькое" типа вывода понятных сообщений об ошибках/успешном завершении, агрегирование нескольких изменений в один скрипт и т.д., но касаемо синхронизации идей нет совершенно никаких.
Что можете посоветовать в данной ситуации?