Какие разрешения требуются для идентификации пула приложений для управления другими пулами приложений?
У меня есть веб-сайт (используется для управления различными частями нашего программного обеспечения), которому требуются разрешения, необходимые для запуска / остановки других пулов приложений.
Я создал пользователя и установил удостоверение пула приложений на пользовательский, однако веб-приложение по-прежнему не может запускать / останавливать пулы приложений. Я получаю следующую ошибку:
System.UnauthorizedAccessException: Filename: redirection.config
Error: Cannot read configuration file due to insufficient permissions
at Microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName, String bstrSectionPath)
at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section, String sectionPath, String locationPath)
at Microsoft.Web.Administration.ServerManager.get_ApplicationPoolsSection()
at Microsoft.Web.Administration.ServerManager.get_ApplicationPools()
Обсуждение здесь предлагает установить пул приложений для локальной системы или администратора, это работает, но я не хочу делать это по соображениям безопасности (для внешней поддержки потребуется доступ к этому сайту).
Я дал пользователю более высокие разрешения ( как предложено здесь), начав с того, что сделал его частью группы локальных администраторов, но изначально это не сработало, и дал пользователю разрешение на чтение / запись / изменение на C:\Windows\System32\inetsrv\config также не работал. Должно быть, я сделал что-то не так, поскольку местный администратор теперь работает, но это все-таки не то, что я хочу.
Так может кто-нибудь предложить разрешения, которые мне нужно добавить к этому пользователю, и как я могу применить их?
Ответ на мою проблему (но другой вопрос) здесь, но, чтобы уточнить, я думаю, что мне нужно дать отдельному пользователю "Разрешения на выполнение операций IIS", кто-нибудь знает, как это сделать, если действительно это разрешения, которые мне требуются?
1 ответ
Если вы пытаетесь разрешить им сказать "Перезапуск пула приложений" или выполнить какую-либо операцию во время выполнения ("Пуск", "Стоп", "Состояние запроса" и т. Д.), То вам необходимо войти в группу "Администраторы". Это связано с тем, что API-интерфейс RSCA защищен только для членов группы "Администраторы".
Как указано в связанном вопросе, вы можете настроить конфигурационные файлы ACL (и каталог, и даже ключи шифрования), чтобы иметь возможность чтения / записи конфигурации, но для обеспечения доступа во время выполнения вам потребуется изменить разрешения DCOM для нашего API RSCA.
Вместо этого я, вероятно, предложил бы, возможно, защитить ваши действия на веб-сайте, которые в этом нуждаются, только выдав себя за учетную запись администратора непосредственно перед запуском нужного кода. Вы также можете рассмотреть возможность реализации шаблона Gatekeeper, в котором действия с высокими привилегиями доступны только в одном приложении, работающем от имени администратора, и оно защищено, чтобы быть доступным только с известного и ограниченного IP-адреса и требовать строгой аутентификации, а вы вызываете их из другого руководства. сайт.