Docstoc

Слайды лекций В. К. Толстых - ASP.NET приложения – Проверка

Document Sample
Слайды лекций В. К. Толстых - ASP.NET приложения – Проверка Powered By Docstoc
					Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных
                   технологий физического факультета Донецкого национального университета




                         Технологии
                         разработки Internet-
                         приложений
         ASP.NET приложения:
         Безопасность – проверка подлинности,
         олицетворение


                                 проф. В.К.Толстых, www.tolstykh.com
Для обеспечения безопасного авторизированного доступа к Web-
    приложению и его ресурсам необходимо решить следующие задачи:



1.   Выбор варианта проверки подлинности (см. далее), при
     необходимости – конфиденциальности и целостности.

2.   Реализация аутентификации пользователя – определение
     идентичности пользователя и обеспечения гарантий этой
     идентичности.

3.   Реализация авторизации – управление списком разрешающих или
     запрещающих правил, регулирующих доступ к содержимому
     аутентифицированного пользователя.
Проверка подлинности ASP.NET
          Страницы ASP.NET исполняются внутри процесса или программы Windows. Все
программы Windows работают с отдельным удостоверением безопасности. На веб-сервере,
работающем под управлением IIS 6, 7, рабочий процесс ASP.NET выполняется в пуле
приложений. Пул приложений определяет удостоверение, под которым выполняется ASP.NET
(по умолчанию – учетная запись NETWORK SERVICE, для IIS 5 – ASPNET).

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


Варианты проверки подлинности:
        анонимная проверка подлинности
        проверки подлинности с использованием олицетворения ASP.NET
        обычная проверка подлинности
        дайджест-проверки подлинности
        проверка подлинности с помощью форм
        проверка подлинности Windows
        сопоставление сертификата клиента
Консоль диспетчера IIS 7
Анонимная проверка подлинности
            Включение анонимной проверки подлинности позволяет редактировать учетную
 запись, которая используется службами IIS для доступа к узлу и приложению. При анонимном
 доступе IIS 7 по умолчанию использует IUSR (IIS 6 использует IUSR_имя компьютера) в
 качестве имени пользователя. Пользователь IUSR создаѐтся при установке IIS.




Замечание. Если изменить учѐтную запись анонимной проверки подлинности с IUSR на
какую-либо другую, например, на сетевую, то анонимные клиенты Web-приложений получат
доступ ко всей внутренней сети!
Проверка подлинности с использованием
олицетворения ASP.NET
 Олицетворение ASP.NET используется, когда необходимо выполнить приложение
 пользователя ASP.NET в контексте безопасности, отличном от контекста по умолчанию для
 приложения ASP.NET.

 Если разрешить олицетворение для приложения ASP.NET, это приложение сможет работать в
 одном из двух вариантов: от имени пользователя, прошедшего проверку подлинности в
 службах IIS 7, или от имени произвольной учетной записи, заданной пользователем.
 По умолчанию олицетворение ASP.NET выключено.


 Процедуру олицетворения можно выполнить несколькими способами:

 1.     с помощью пользовательского интерфейса,
 2.     команды Appcmd.exe в окне командной строки,
 3.     прямым изменением файлов конфигурации,
 4.     посредством написания сценариев WMI (Windows Management Instrumentation) –
        VBScript, Windows PowerShell.

 Рассмотрим 1, 3
     Олицетворение с помощью пользовательского
     интерфейса - Диспетчер IIS 7




             Приложение будет         Приложение будет работать от
             работать от имени        заданной учѐтной записи для
         пользователя, прошедшего      анонимного доступа, т.е. для
           проверку подлинности       пользователей, не прошедших
                                          проверку подлинности


После этого выбора службы IIS будут
использовать выбранное удостове-
рение для контекста безопасности
приложения ASP.NET.
Олицетворение с помощью настройки конфигурации
<identity> под <system.web> (Имперсонализация )
               <identity impersonate="true|false"
                         userName="domain|username"
                         password="<secure password>"/>

Атрибут impersonate указывает, следует ли использовать олицетворение клиента.
Атрибут password задает используемый пароль, если impersonate имеет значение true.
Атрибут userName задает имя пользователя, если impersonate имеет значение true.


Чтобы зашифровать имя пользователя и пароль и сохранить их в реестре, установите значения
атрибутов userName и password, как показано в следующем примере:

userName="registry:HKLM\Software\AspNetProcess,Name"
password="registry:HKLM\Software\AspNetProcess,Pwd«
Учетные данные должны быть представлены в формате REG_BINARY и содержать результат
вызова функции Windows API CryptProtectData. Для создания зашифрованных учетных данных и
сохранения их в реестре можно воспользоваться программой Aspnet_setreg.exe, которая
выполняет операции шифрования с помощью функции CryptProtectData.
    Доступ к параметрам конфигурации ASP.NET
    программными средствами
<%@ Import Namespace="System.Web.Configuration" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Text" %>
try
{
    // Установка путик к Web-приложению, где находится Web.config
    string configPath = "/MyAppRoot";
    // Получение объекта конфигурации по заданному пути к Web.config
    Configuration config = WebConfigurationManager.OpenWebConfiguration(configPath);
    // Получение объекта, соответствующего разделу <identity>
    IdentitySection section = (IdentitySection)config.GetSection("system.web/identity");
    // Чтение раздела <identity>
    StringBuilder identity = new StringBuilder();
    identity.Append("Impersonate: ");
    identity.Append(section.Impersonate.ToString());
    // Показ информации раздела <identity>
    ConfigId.Text = identity.ToString();
}
catch (Exception e) { ConfigId.Text = e.ToString(); }
Обычная проверка подлинности
           Для обычной проверки подлинности необходимо, чтобы
 для доступа к содержимому пользователи предоставляли имя
 пользователя и пароль. Для этого метода проверки подлинности
 не требуется специальный обозреватель. Она также работает при
 подключении через брандмауэры и прокси-серверы. Однако
 недостатком метода является то, что при его использовании по
 сети пересылаются незашифрованные пароли.




Замечание. Обычная проверка подлинности может использоваться, только если известно,
что соединение между клиентом и сервером безопасно. Подключение должно
устанавливаться по выделенной линии или с помощью SSL-шифрования и протокола TSL.
Дайджест-проверка подлинности
           При дайджест-проверке подлинности контроллер домена Windows используется,
 чтобы проверить подлинность пользователей, которые запросили доступ к содержимому веб-
 сервера. Дайджест-проверка подлинности в службах IIS 6.0 называлась расширенной краткой
 проверкой подлинности. Когда требуется более высокий по сравнению с обычной проверкой
 подлинности уровень безопасности, рекомендуется применять дайджест-проверку
 подлинности, особенно если в производственной среде имеются брандмауэры и прокси-
 серверы.



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

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

         Проверку подлинности Windows следует использовать при необходимости проверки
подлинности пользователей с помощью протоколов NTLM или Kerberos. Проверка подлинности
Windows не пригодна для использования в Интернете, так как эта среда не требует и не
шифрует учетные данные пользователя.

Проверка подлинности Windows лучше всего подходит для интрасети по приведенным ниже
причинам:

   1.   Клиентские компьютеры и веб-серверы находятся в одном домене.
   2.   Администраторы могут обеспечить наличие на всех компьютерах обозревателей
        Internet Explorer не ниже версии 2.0.
   3.   Не требуется подключений через HTTP-прокси, которые не поддерживаются NTLM.
   4.   Для работы Kerberos v5 требуется подключение к службе каталогов Active Directory,
        что не представляется возможным в Интернете.

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:6
posted:12/5/2011
language:Russian
pages:12