Как я могу запустить процесс командной строки, который требует аутентификации AD из веб-службы .NET?

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

По сути, моя компания недавно купила Tidal Scheduler. Нам нужно запускать задания ad hoc из другого процесса, например: BizTalk, веб-приложений .NET и т. д. Наш план состоял в том, чтобы обернуть веб-службу .net вокруг C++ API. Это, по-видимому, уходит из версии.next, поэтому вместо этого мы пытаемся обернуть веб-службу .net вокруг их интерфейса командной строки.

Клиенту требуется аутентификация Active Directory. Используя почти каждый из приведенных ниже методов для олицетворения, мы не смогли успешно вызвать CLI из нашего веб-сервиса .net. Из того, что я прочитал в вопросе, указанном выше, мы пытаемся выдать себя за пользователя с большим количеством прав, чем у учетной записи ASPNET, и это вызывает брешь в безопасности.

Есть лучший способ сделать это? Есть ли способ заставить его работать с дорогой, которую мы уже прошли? Любая помощь приветствуется, мы потратили на это много времени.

Примечание: мы сделали это с помощью PsExec, но на данный момент Дело в том, что это такой огромный обходной путь (и так достаточно большой обходной путь), что мы бы очень предпочли не использовать его в нашей среде.


person IronicMuffin    schedule 09.12.2009    source источник


Ответы (2)


Одним из возможных методов может быть запуск веб-службы в пуле приложений, который имеет учетные данные пользователя, которого вам нужно олицетворять. (Это предполагает, что аутентификация является результатом попытки операции и сбоя в качестве учетной записи, на которой запущена текущая веб-служба.... если она требует аутентификации даже при работе от имени пользователя, которого вы выдаете себя, вам не повезло.)

Олицетворенный пользователь должен быть членом группы IIS_WPG в поле, в котором работает веб-служба. Также может потребоваться несколько локальных разрешений. Просто убедитесь, что пользователь, которого вы выдаете за себя, имеет очень ограниченные права на самом ящике.

person Community    schedule 09.12.2009
comment
Вы, сэр, мой герой. После борьбы с олицетворением всех разновидностей это простое изменение все исправило. Я благодарю тебя. - person IronicMuffin; 09.12.2009
comment
Ах, я рад, что это сработало для вас. Я использовал этот метод для соединений SSPI DB раньше, и ваша проблема казалась похожей. - person ; 09.12.2009

Возможно, вам нужна служба Windows, у которой есть ваши учетные данные. Затем ваша веб-служба может вызвать службу Windows, чтобы выполнить все, что вы хотите сделать. Служба Windows — это шаблон проекта в Visual Studio, а документы в MSDN очень просты.

person No Refunds No Returns    schedule 09.12.2009