Конфигурирование и настройка Microsoft ASP.NET

       

Настройка режима аутентификации для использования аутентификации Windows


Первым шагом к установке режима аутентификации Windows является добавление в файл web.config следующей строки.

<authentication mode="Windows"></authentication>

Это единственное изменение, которое необходимо сделать в файле web.config. Следующим шагом является установка используемого метода аутентификации Windows. Для настройки аутентификации Windows вы будете работать с инструментом администрирования IIS. Он позволит задать аутентификации Windows типа Basic, Digest или Integrated. Данный раздел посвящен использованию настроечных файлов, поэтому я не буду описывать, как настраивать аутентификацию Windows в инструменте администрирования IIS. Об этом подробно говориться в лекции 8.


Первым шагом к установке режима аутентификации Windows является добавление в файл web.config следующей строки.

<authentication mode="Windows"></authentication>

Это единственное изменение, которое необходимо сделать в файле web.config. Следующим шагом является установка используемого метода аутентификации Windows. Для настройки аутентификации Windows вы будете работать с инструментом администрирования IIS. Он позволит задать аутентификации Windows типа Basic, Digest или Integrated. Данный раздел посвящен использованию настроечных файлов, поэтому я не буду описывать, как настраивать аутентификацию Windows в инструменте администрирования IIS. Об этом подробно говориться в лекции 8.




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

<authentication mode="Forms"></authentication>

Следующий шаг включает новый элемент, который используется в разделе <authentication> – элемент <forms>. Он содержит свойства, которые следует настроить, прежде чем использовать аутентификацию с помощью формы. Данные параметры настраивают cookie аутентификации, который проверяет пользователя, например:

<authentication mode="Forms"> <forms name="cookie name" loginUrl="url of form" protection= "level of protection" timeout="cookie timeout" path="cookie path" requireSSL="true | false" slidingExpiration="true | false"> </forms> </authentication>

Таблица 4.2 содержит перечень свойств, описаний и возможных значений элемента <forms>.

Таблица 4.2. Свойства <forms>

Имя свойстваОписание
nameИмя cookie, используемого для аутентификации. Значением по умолчанию является .ASPXAUTH, но если на одном веб-сервере выполняется несколько приложений, то следует настроить это значение так, чтобы для каждого приложения использовался свой cookie.
loginUrlURL страницы, которая содержит информацию для входа на ваш сайт. При попытке доступа неопознанного пользователя его запросы будут перенаправляться на указанную страницу. Значением по умолчанию является default.aspx.
protection

Указывает тип шифрования, используемый для cookie аутентификации. Возможные значения включают:

All Указывает, что cookie должен использовать проверку данных и шифрование – это значение по умолчанию.



None Указывает, что для cookies отключены проверка данных и шифрование. Целесообразно использовать, если cookies не особенно важны для приложения, а применяются только для настройки внешнего вида сайта.

Encryption Указывает, что cookie будет зашифрован с помощью алгоритма Triple-DES или DES, но для него не будет выполняться проверка данных.

Validation Указывает, что cookie будет проверяться на предмет того, не изменилось ли его содержимое в процессе передачи. Сookie создается путем конкатенации проверочного ключа и данных cookie, вычисления кода аутентификации сообщения (message authentication code – MAC) и добавления этого MAC в cookie. Это защитное значение гарантирует, что в информацию не было произведено вмешательства, и защита сайта не будет нарушена.

timeoutУказывает время в минутах, через которое истекает срок действия аутентификационного cookie.
pathУказывает путь, используемый для cookie аутентификации – по умолчанию "/".
requireSSL

Указывает, требуется ли для передачи cookie использование SSL. Возможными значениями являются:

true Указывает, что требуется SSL.

false Указывает, что SSL не требуется (значение по умолчанию).

slidingExpiration

Указывает, включен ли "сдвигающийся" период времени действия cookie. Такой период действия сбрасывает счетчик времени действия cookie при каждом обращении к приложению. Если cookie устаревает за 10 минут, а сдвигающийся период действия не включен, то cookie устареет через 10 минут после первого доступа. Если задействован сдвигающийся период действия, то cookie будет устаревать через 10 минут после последнего запроса к приложению.

true Указывает, что сдвигающийся период времени действия включен.

false Указывает, что сдвигающийся период времени действия отключен (значение по умолчанию). Данное свойство появилось в ASP.NET версии 1.1.

<


Ниже приведен пример элемента <forms>.

<authentication mode="Forms"> <forms name=".SiteCookie" loginUrl="login.aspx" protection ="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true"> </forms> </authentication>

В этом примере имя cookie устанавливается равным .SiteCookie, URL страницы входа в значение – login.aspx, а уровень защиты – all. Установка уровня защиты в значение all означает, что cookie будет защищен как при помощи проверки данных, так и с помощью шифрования. Время истечения действия cookie устанавливается в 30 минут, путь равен "/", и SSL не требуется. Сдвигающееся время действия установлено в значение true, то есть при каждом запросе время действия cookie будет отсчитываться заново.

Пример из практики. Значение времени действия cookie – это очень важное значение. Нет ничего более разочаровывающего, чем заполнение очень длинной формы и передача ее только для того, чтобы обнаружить, что ваш cookie устарел и информация будет потеряна. Убедитесь, что время действия достаточно продолжительно, либо разбейте длинные формы на несколько страниц.

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

Субэлемент <credentials> элемента <forms> содержит список имен пользователей и паролей, используемых для аутентификации пользователей. Это не единственная возможность создания списка имен пользователей и паролей, но она является самым простым методом и полезна для сайтов с небольшим и редко меняющимся списком пользователей и паролей. Чтобы использовать раздел <credentials>, сначала установите свойство passwordFormat элемента <credentials>, например:

<credentials passwordFormat="encryption method"> </credentials>

Таблица 4.3 содержит список доступных значений свойства passwordFormat.

Таблица 4.3. Табл. 4.3. Значения passwordFormatЗначениеОписание
ClearУказывает, что пароли хранятся в формате простого текста без шифрования.
MD5Указывает, что пароли сохраняются с помощью алгоритма хеширования MD5.
SHA1Указывает, что пароли сохраняются с помощью алгоритма хеширования SHA1.
После указания метода сохранения паролей, пары имен пользователей и паролей можно сохранить раздел <credentials> с помощью элемента <user>, например:

<credentials passwordFormat="MD5"> <user name="user name" password="encrypted password" /> <user name="user name2" password="encrypted password" /> </credentials>

Свойство name – это имя пользователя, а свойство password – зашифрованный пароль пользователя. Вы можете сохранить группу имен пользователей и паролей в разделе <credentials>, а затем сверять их с этой группой из вашего приложения.



Ниже приведен пример элемента <forms>.

<authentication mode="Forms"> <forms name=".SiteCookie" loginUrl="login.aspx" protection ="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true"> </forms> </authentication>

В этом примере имя cookie устанавливается равным .SiteCookie, URL страницы входа в значение – login.aspx, а уровень защиты – all. Установка уровня защиты в значение all означает, что cookie будет защищен как при помощи проверки данных, так и с помощью шифрования. Время истечения действия cookie устанавливается в 30 минут, путь равен "/", и SSL не требуется. Сдвигающееся время действия установлено в значение true, то есть при каждом запросе время действия cookie будет отсчитываться заново.

Пример из практики. Значение времени действия cookie – это очень важное значение. Нет ничего более разочаровывающего, чем заполнение очень длинной формы и передача ее только для того, чтобы обнаружить, что ваш cookie устарел и информация будет потеряна. Убедитесь, что время действия достаточно продолжительно, либо разбейте длинные формы на несколько страниц.

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

Субэлемент <credentials> элемента <forms> содержит список имен пользователей и паролей, используемых для аутентификации пользователей. Это не единственная возможность создания списка имен пользователей и паролей, но она является самым простым методом и полезна для сайтов с небольшим и редко меняющимся списком пользователей и паролей. Чтобы использовать раздел <credentials>, сначала установите свойство passwordFormat элемента <credentials>, например:

<credentials passwordFormat="encryption method"> </credentials>

Таблица 4.3 содержит список доступных значений свойства passwordFormat.

Таблица 4.3. Табл. 4.3. Значения passwordFormatЗначениеОписание
ClearУказывает, что пароли хранятся в формате простого текста без шифрования.
MD5Указывает, что пароли сохраняются с помощью алгоритма хеширования MD5.
SHA1Указывает, что пароли сохраняются с помощью алгоритма хеширования SHA1.
После указания метода сохранения паролей, пары имен пользователей и паролей можно сохранить раздел <credentials> с помощью элемента <user>, например:

<credentials passwordFormat="MD5"> <user name="user name" password="encrypted password" /> <user name="user name2" password="encrypted password" /> </credentials>

Свойство name – это имя пользователя, а свойство password – зашифрованный пароль пользователя. Вы можете сохранить группу имен пользователей и паролей в разделе <credentials>, а затем сверять их с этой группой из вашего приложения.


Содержание раздела