Поделиться через


Настройка удостоверения процесса ASP.NET

Обновлен: Ноябрь 2007

Страницы ASP.NET исполняются внутри процесса или программы Windows. Все программы Windows работают с отдельным удостоверением безопасности. По умолчанию процесс ASP.NET выполняется под предопределенным удостоверением Windows. В качестве альтернативы, с помощью настройки использования приложением олицетворения, можно задать для ASP.NET выполнение под другим удостоверением или под удостоверением Windows пользователя, сделавшего запрос.

Чтобы повысить безопасность приложений ASP.NET, следует убедиться, что процесс ASP.NET выполняется с удостоверением, которое имеет минимальные права, требуемые для запуска приложений. Это уменьшает уязвимость ресурсов, предоставляемых ASP.NET, в случае нарушения безопасности.

На веб-сервере, работающем под управлением Microsoft Windows Server 2003 и IIS 6.0, процесс ASP.NET выполняется в пуле приложений для веб-приложения. Пул приложений определяет удостоверение, под которым выполняется ASP.NET (по умолчанию учетная запись NETWORK SERVICE). В более ранних IIS (в операционных системах Microsoft Windows 2000 и Windows XP Professional) ASP.NET выполняется в рабочем процессе ASP.NET (Aspnet_wp.exe). Удостоверение, под которым выполняется ASP.NET, определяется удостоверением процесса Aspnet_wp.exe (по умолчанию учетная запись ASPNET).

Чтобы указать удостоверение для приложения ASP.NET на сервере, работающем под управлением Windows Server 2003, используйте диспетчер IIS, чтобы настроить удостоверение пула приложений для приложения ASP.NET. Удостоверение пула приложений также необходимо добавить в группу IIS_WPG на компьютере сервера.

Чтобы запустить рабочий процесс ASP.NET с его собственной учетной записью под управлением Windows 2000 или Windows XP Professional, можно применить следующие два атрибута к элементу настройки <processModel> файла Machine.config на компьютере веб-сервера:

  • userName   Имя учетной записи Windows, под которой будет выполняться процесс.

  • password   Пароль в открытом тексте для учетной записи. Существуют угрозы безопасности, связанные с хранением паролей в открытом тексте в файле конфигурации. Если учетные данные хранятся в файле конфигурации, следует зашифровать содержимое элемента настройки <processModel> с помощью защищенной конфигурации. Дополнительные сведения см. в разделе Шифрование сведений о конфигурации с помощью функции защищенной конфигурации. Для приложений, публикуемых в Интернете, следует использовать альтернативные средства запуска приложения с отдельным удостоверением, таким как олицетворение анонимного удостоверения, применяемого службами IIS. Дополнительные сведения см. в разделе Использование проверки подлинности IIS с олицетворением ASP.NET.

В следующем примере показано, как задать эти атрибуты в элементе <processModel> файла конфигурации для запуска рабочего процесса под локальной учетной записью пользователя.

<system.web>
  <processModel enable="true"
    userName="LOCALMACHINE\IUSR_ProcessUser"
    password="%Hco94*#QW12"/>
</system.web>

Дополнительно кроме установки для атрибута userName имени существующего удостоверения Windows можно задать для него предустановленное имя System или Machine. Учетная запись System запускает рабочий процесс под тем же удостоверением, что и IIS (как правило, SYSTEM).

dwc1xthy.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

Не рекомендуется запускать приложения под учетной записью System, так как она повышает привилегии и поэтому может представлять риск безопасности, если процесс ASP.NET будет расшифрован.

Учетная запись Machine запускает рабочий процесс под отдельной учетной записью с именем ASPNET, которая ограничивает права. С любым удостоверением процесс не должен предоставлять учетные данные для операционной системы.

dwc1xthy.alert_note(ru-ru,VS.90).gifПримечание.

Чтобы приложения ASP.NET нормально работали, необходимо убедиться, что удостоверение процесса имеет доступ к спискам ACL, перечисленным в Обязательные списки управления доступом (ACL) ASP.NET. Дополнительно, на серверах, работающих под управлением IIS 5.0, удостоверение процесса должно обеспечивать доступ для чтения в метабазе IIS, который можно предоставить с помощью средства Aspnet_regiis.exe и определения параметра -ga (например, aspnet_regiis -ga "UserDomain\ApplicationUser").

См. также

Другие ресурсы

Безопасность веб-приложений ASP.NET