Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Л7 Система безопасности ASP.NET

.pdf
Скачиваний:
10
Добавлен:
29.02.2016
Размер:
187.01 Кб
Скачать

Система безопасности ASP.NET

Обеспечение безопасности веб-узлов — это важный и сложный вопрос для вебразработчиков.Защита веб-узлов требует тщательного планирования, поэтому администраторы и программисты должны иметь четкое представление о возможностях защиты веб-узла.

Чтобы обеспечить безопасность веб-приложений, ASP.NET используется совместно с

Microsoft .NET Framework и службами Microsoft Internet Information Services (IIS).Для создания безопасного приложения ASP.NET следует выполнить две основные функции,

Проверка подлинности Служит для проверки подлинности пользователя.Приложение получает от

пользователя учетные данные (различные формы идентификации, такие как имя и пароль) и сравнивает их с данными авторитетного источника.Если учетные данные верны, отправивший их объект признается прошедшим проверку подлинности.

АвторизацияОграничивает право доступа, предоставляя определенные разрешения или отказывая в них удостоверенной личности.

Архитектура безопасности ASP.NET

Архитектура ASP.NET

Как показано на рисунке, все веб-клиенты взаимодействуют с приложениями ASP.NET с помощью служб IIS.При необходимости IIS проверяет подлинность запроса и затем определяет местонахождение запрошенного ресурса (например, приложение ASP.NET).Если клиент авторизован, ему предоставляется доступ к этому ресурсу.

Во время выполнения приложение ASP.NET может использовать встроенные средства безопасности ASP.NET.Кроме того, в приложении ASP.NET могут использоваться средства безопасности платформы .NET Framework.

Интеграция проверки подлинности ASP.NET с IIS

Для проверки подлинности наряду с функциями IIS можно использовать возможности ASP.NET.При рассмотрении вопроса проверки подлинности ASP.NET необходимо изучить работу со службами проверки подлинности IIS.

Службы IIS предполагают, что набор учетных данных отображает учетную запись Microsoft Windows NT, и эти учетные данные должны использоваться для проверки подлинности пользователя.

В службах IIS 7 используются следующие методы проверки подлинности: анонимный, олицетворение ASP.NET, базовый, сопоставление сертификата клиента, дайджест, формы и встроенная система безопасности Windows (NTLM или Kerberos).Можно выбрать один из типов проверки подлинности, используя административные службы

Если запрашивается URL-адрес, выполняющий сопоставление с приложением ASP.NET, информация о запросе и проверке подлинности передаются приложению. ASP.NET обеспечивает проверку подлинности форм.Проверка подлинности форм — система, с помощью которой запросы, не прошедшие проверку подлинности, перенаправляются на созданную веб-страницу ASP.NET.Пользователь предоставляет учетные данные и отправляет страницу.Если приложение подтверждает подлинность запроса, система выдает билет проверки подлинности с учетными данными или ключом для повторного запроса удостоверения в файле Cookie.В последующих запросах содержится также билет проверки подлинности.

Параметры безопасности файла конфигурации ASP.NET

Настройка параметров безопасности ASP.NET выполняется в файлах Machine.config и

Web.config.

Базовые параметры и параметры по умолчанию, как и другие сведения о конфигурации, задаются в файле Machine.config вложенной папки Config.

Параметры узла и приложения (включая переопределение настроек файла Machine.config) можно установить в файлах Web.config корневых каталогов веб-узла и приложения. Вложенные папки наследуют параметры каталога, если они не переопределены файлом Web.config во вложенной

Существуют три основных раздела файла Web.config: проверка подлинности, , авторизация и идентификация.Значения каждого из элементов безопасности обычно задаются в файле Machine.config и по необходимости переопределяются в файле на уровне приложения Web.config.Все вложенные папки наследуют эти параметры автоматически.Однако у них могут быть собственные файлы конфигурации, переопределяющие унаследованные параметры. Примечание

Система конфигурации ASP.NET применяется только к ресурсам ASP.NET. Таким образом файлы с расширениями TXT, HTM, HTML, GIF, JPG, JPEG, ASP и других типов остаются доступными для всех пользователей (в зависимости от разрешений IIS).К примеру, несмотря на то, что ресурсы ASP.NET в каталоге могут быть защищены файлом Web.config, пользователи смогут просматривать файлы, расположенные в этом каталоге, если включен режим просмотра каталога и не наложено никаких других ограничений.Чтобы поместить эти файлы под защиту системы безопасности ASP.NET, необходимо явно отобразить расширения имен этих файлов на расширение Aspnet_isapi.dll с помощью инструмента администрирования IIS.Однако обработки этих типов файлов через ASP.NET может снизить производительность работы веб-узла.

Для указания конкретного файла или каталога, к которому должны применяться параметры, можно использовать элемент конфигурации location.

Поток данных системы безопасности ASP.NET

Систему безопасности в приложениях ASP.NET можно создать несколькими способами. Рассмотрим поток данных системы безопасности для двух стандартных скриптов: олицетворения и проверки подлинности с помощью форм с использованием файлов «cookies».

Скрипт 1. Олицетворение. Скрипт олицетворения предполагает использование проверки подлинности IIS и безопасности доступа к файлам Microsoft Windows NT, чтобы свести к минимуму программирование безопасности в самом приложении ASP.NET.Поток данных показан на следующем рисунке.

Запрос поступает в службы IIS от клиента сети.

Службы IIS проверяют подлинность клиента, используя стандартную, шифрованную или встроенную безопасность Windows (NTLM или

Kerberos).

Если клиент проходит проверку подлинности, службы IIS передают удостоверенный запрос в

ASP.NET.

Приложение ASP.NET олицетворяет клиент, выполняющий запрос, используя лексему доступа, переданную из IIS, и использует разрешения NTFS-файла для предоставления доступа к ресурсам.

Приложение ASP.NET должно только проверить, что в файле конфигурации ASP.NET для олицетворения задано значение true ; код безопасности для ASP.NET писать не требуется.

Если олицетворение не включено, приложение запускается с удостоверением процесса

ASP.NET.Для Microsoft Windows 2000 Server и Windows XP Professional удостоверением по умолчанию является локальная учетная запись с именем ASPNET, которая создается автоматически при установке ASP.NET.Для Microsoft Windows Server 2003 удостоверением по умолчанию является удостоверение пула приложений для приложения IIS (по умолчанию учетная запись

NETWORK SERVICE).

Скрипт 2. Проверка подлинности с помощью форм

Всценарии проверки подлинности с помощью форм приложение собирает учетные данные, такие как имя и пароль, непосредственно от пользователя, самостоятельно определяя его подлинность. Проверка подлинности IIS не используется приложением, но параметры проверки подлинности IIS могут

влиять на проверку подлинности с помощью форм.

Как правило, когда используется проверка подлинности с помощью форм, разрешается анонимный доступ в IIS.С другой стороны, если пользователи не проходят проверку подлинности IIS, они не имеют доступа к приложению, чтобы предоставить имя пользователя и пароль для проверки подлинности с помощью форм.

Проверка подлинности ASP.NET

Проверка подлинности — это процесс получения идентификационных учетных данных пользователя, таких как имя и пароль, и последующей проверки этих сведений на соответствие данным центра сертификации.Если учетные данные верны, отправивший их объект признается прошедшим проверку подлинности.После того как подлинность удостоверения объекта подтверждена, выполняется авторизация, по результатам которой определяется, имеет ли этот объект доступ к указанному ресурсу.

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

Поставщик службы проверки подлинности Windows Предоставляет сведения о совместном использовании проверки подлинности Windows и Microsoft IIS для защиты приложений ASP.NET.

Поставщик службы проверки подлинности форм Предоставляет сведения о порядке создания формы входа для конкретного приложения, а также о выполнении проверки подлинности с помощью собственного кода.Для проверки подлинности форм удобно одновременно использовать членство и элементы управления входом ASP.NET, что позволяет выполнять сбор учетных данных пользователя, проверку их подлинности и управление ими, используя при этом код минимально возможного объема.

Авторизация в ASP.NET

В процессе авторизации определяется, можно ли конкретному пользователю предоставить доступ к указанному ресурсу.В ASP.NET существует два основных способа авторизации доступа к заданному ресурсу:

Авторизация файла Авторизация файла выполняется модулем FileAuthorizationModule.Этот модуль проверяет список управления доступом (ACL) файла обработчика с расширением ASPX или ASMX и определяет, следует ли пользователю предоставить доступ к файлу.Разрешения списка управления доступом проверяются для учетной записи пользователя в Windows (если включена проверка подлинности Windows) либо для удостоверения Windows процесса ASP.NET.Дополнительные сведения см. в разделе Олицетворение

ASP.NET.

Авторизация URL-адреса Авторизация URL-адреса выполняется модулем UrlAuthorizationModule, который сопоставляет пользователей и роли URL-адресам в приложениях ASP.NET.С помощью этого модуля можно избирательно предоставлять или запрещать определенным пользователям и ролям доступ к произвольным компонентам приложения (как правило, каталогам).