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


Использование проверки подлинности IIS с олицетворением ASP.NET

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

IIS предоставляет несколько схем проверки подлинности, которые можно применять для защиты веб-приложения. Наиболее распространенные сценарии включают использование встроенной проверки подлинности Windows (NTLM) в корпоративной интрасети для определения идентификации пользователей приложения на основе их имени пользователя в Windows или указание одной анонимной идентификации для конкретного приложения. Идентификация Windows, предлагаемая IIS, может затем использоваться для определения, имеет ли веб-приложение доступ к защищенным ресурсам Windows, таким как файл, защищенный с помощью списка управления доступом (ACL), или к сетевым ресурсам, таким как файловый сервер или сервер баз данных. Можно настроить ASP.NET для использования идентификации Windows, предоставляемой IIS, включив олицетворение.

По умолчанию ASP.NET настраивается для использования режима проверки подлинности Windows, который применяет идентификацию Windows, предоставляемую IIS, к свойству User текущего объекта HttpContext. Это позволяет определить идентификацию, предоставляемую IIS, с помощью свойства User (при использовании анонимной идентификации имя Name пользователя оставляется пустым), но не использовать предлагаемую идентификацию как WindowsIdentity для текущей страницы. Идентификация WindowsIdentity для приложения используется во время определения, имеет ли данное приложение доступ к конкретному файловому или сетевому ресурсу.

Чтобы настроить ASP.NET для олицетворения идентификации Windows, предлагаемой IIS, как WindowsIdentity для приложения ASP.NET, следует отредактировать файл Web.config этого приложения и установить для атрибута impersonate элемента конфигурации identity значение true, как показано в следующем примере.

<configuration>
  <system.web>
    <identity impersonate="true" />
  </system.web>
</configuration>

Олицетворение не зависит от режима mode проверки подлинности, настроенного с помощью элемента конфигурации проверка подлинности. Этот элемент проверки подлинности используется для определения свойства User текущего контекста HttpContext. Олицетворение используется для определения идентификации WindowsIdentity приложения ASP.NET.

В качестве примера далее описывается способ разрешения олицетворения с помощью сценария интрасети. В этом сценарии внутренний корпоративный веб-узел настраивается для отправки сведений сотрудникам. Предполагается однако, что некоторая информация предназначена только для менеджеров. Информация для менеджеров может быть отправлена во вложенную папку информационного узла для сотрудников так, чтобы можно было ограничить к ней доступ. IIS определяет удостоверение пользователя с помощью встроенной службы безопасности Windows (NTLM). В сценарии предполагается:

  • На веб-узле установлена операционная система Microsoft Windows NT Server, Windows 2000 Server или Windows Server 2003.

  • На веб-сервере установлены службы IIS 6.0.

  • Жесткий диск веб-сервера отформатирован с помощью NTFS.

  • Все сотрудники, которым нужно предоставить доступ к ограниченному ресурсу, используют Windows.

Администратор приложения в этом сценарии должен выполнить следующие действия:

  1. Создать файлы и каталоги, как показано на следующем рисунке:

    134ec8tc.directories(ru-ru,VS.90).gif

  2. Создать группу Windows с именем «Менеджеры» и включить в нее всех пользователей, которые должны иметь доступ к файлу ManagerInfo.aspx.

  3. С помощью диспетчера IIS отключить в этом приложении анонимную проверку подлинности и включить встроенную проверку подлинности Windows.

  4. В файле Web.config приложения установить для атрибута impersonate в элементе идентификация значение true.

  5. Установить список управления доступом NTFS для каталога ManagerInformation таким образом, чтобы доступ был разрешен только тем удостоверениям пользователей, которые перечислены в группе «Менеджеры» в Windows, и всем нужным системным учетным записям. Необходимо будет проверить, что идентификация процесса ASP.NET включена. Идентификация процесса ASP.NET для Windows 2000 Server или Windows NT представляет собой локальную учетную запись ASPNET. Идентификация процесса ASP.NET для Windows Server 2003 и последующих версий представляет собой идентификацию пула приложений IIS, которая по умолчанию является учетной записью NETWORK SERVICE.

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

    Средство управления ролями ASP.NET предоставляет другой способ ограничения доступа к областям веб-приложения. Дополнительные сведения см. в разделе Управление авторизацией с помощью ролей.

См. также

Основные понятия

Основные методы обеспечения безопасности веб-приложений

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

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