Управление доступом

Web-сервер может ограничивать доступ пользователей к определенным ресурсам. требует сочетания аутентификации (проверка подлинности) и авторизации (проверки полномочий). При аутентификации определяется пользователь, инициировавший запрос, а при проверке полномочий выясняется, может ли пользователь иметь доступ к определенному ресурсу. Сначала мы рассмотрим, как Web-сервер осуществляет аутентификацию пользователя с помощью агента пользователя. Затем мы обсудим, как Web-сервер определяет, может ли пользователь иметь доступ к запрашиваемому ресурсу.

АУТЕНТИФИКАЦИЯ

Большинство систем клиент-сервер аутептифицируют пользователя, запрашивая у него имя и пароль. В этой модели на сервере имеется файл, содержащий имена и пароли всех зарегистрированных пользователей; с целью защиты информации пароли могут храниться в зашифрованном виде. Пользователь вводит имя и пароль в начале сеанса работы с сервером. Сервер проверяет это имя и пароль и сохраняет информацию о пользователе на данный сеанс. В определенный момент пользователь или сервер завершает сеапс. Для дальнейшего доступа пользователю необходимо инициировать новый сеанс работы с сервером, что подразумевает повторный ввод имени и пароля.

В Web отсутствует понятие сеанса работы пользователя с сервером. У пользователя создается впечатление сеанса работы с Web-сайтом, состоящего из последовательности запросов к Web-страницам. Сервер же, со своей стороны, видит лишь поток независимых HTTP-запросов. В известиом смысле каждый запрос принадлежит своему собственному сеансу. Следовательно, Web-cepвep должен выполнять аутентификацию для каждого запроса на ресурс, для которого предусмотрены ограничения доступа. Однако пользователь может посчитать обременительным вводить имя и пароль при каждом HTTP-запросе, включая запросы на встроенные изображения. Вместо этого сервер предписывает Агенту пользователя включать информацию об имени и пароле в заголовок HTTP-запроса. Пользователь вводит имя и пароль, которые сохраняются до тех пор, пока пользователь не закроет браузер. Запоминание агентом пользователя имеии и пароля дает возможность серверу выполиять аутентификацию, по-прежнему трактуя каждый запрос независимо. Любые промежуточные компоненты между агентом пользователя и исходным сервером просто пересылают информацию о пользователе.

Предположим, что пользователь щелкает мышью на гинерссылке, которая соответствует защищенному ресурсу на сервере www.bar.com. Браузер отправляет на Web-cepBep HTTP-запрос. Сервер распознает, что запрашиваемый ресурс имеет ограничение на доступ. Сервер возвращает НТТР-ответ, который указывает, что запрос требует аутентификации. Ответ также указывает, какой вид аутентификации требуется. Сервер может выбрать один из многих типов аутентификации, включая обычную (basic) или с помощью дайджеста (digest) [FHBH+99]. Ответ также указывает на область (realm) — строку, которая объединяет множество ресурсов сервера. Каждое множество может иметь свою схему аутентификации с различными имеиами и паролями. Далее браузер запрашивает у пользователя имя, пароль и включает эту информацию в последующие запросы. Подробнее о НТТР-аутепти- фикации будет рассказано в главе 7 (раздел 7.10).

ПРОВЕРКА ПОЛНОМОЧИЙ

Процесс аутентификации дает возможность серверу идентифицировать пользователя, обратившегося с НТТР-запросом. Для управления доступом к Web-pecyp- сам сервер должен реализовать стратегию проверки полномочий (авторизации). Серверу нужен эффективный способ определения, какие аутептифицированные пользователи могут иметь доступ к определенному ресурсу. Подобные стратегии поведения являются составной частью настройки сервера. Такая стратегия поведения обычно находит выражение в виде списков управления доступом, которые содержат пользователей, которым разрешен или запрещен доступ к ресурсу. Детали того, как создавать списки управления доступом и как хранить имепа пользователей и пароли, зависят от программного обеспечения сервера. Вместо того чтобы иметь отдельный снисок управления доступом для каждого ресурса, на сервере может быть сделана пастройка по умолчанию для всех ресурсов в каталоге или для всех ресурсов сервера. Ресурсы, требующие аутентификации, могут быть размещены в отдельном каталоге (например, /www/private).

Проверкой полномочий называется процесс применения этих стратегий управления доступом. При обработке запроса сервер должен определить, является ли запрашиваемый ресурс защищенным списком управления доступом. Например, ресурс http://www.bar.com/private/index.htmI может быть связан с HTML-файлом, хранящимся но адресу /www/private/index.html. Доступ к каждому подкаталогу может разрешен только для определенных пользователей. В связи с этим сервер должен определять стратегию управления доступом для каждого каталога на пути к запрашиваемому файлу. Если доступ к каталогу ограничен, сервер должен выполнить Анализ списка пользователей с целью определения, может ли запрос быть выполнен. В дополнение к проверке имени пользователя сервер может разрешать или запрещать доступ к ресурсу на основе другой информации, ассоциированной с HTTP-запросом, гакой как имя хоста или IP-адрес запросившего клиента. Однако реализация стратегии новедения при проверке полномочий, основанная на имени клиента или адресе, является доволыю рискованной, поскольку некоторые запросы могут быть отправлены от имени ирокси-сервера, а не агента пользователя. На самом деле пользователь, которому отказапо в доступе к ресурсу, мог пастроигь браузер для отправки запросов через прокси-сервер, которому разрешен доступ к ресурсу.

Аутентификация HTTP-запросов может существенно повысить пагрузку на Web-сервер. Сервер должен проверить имя пользователя и пароль для идентификации пользователя и должен осуществить Анализ аутептификационной информации в каждом каталоге на пути к запрашиваемому ресурсу. При сложных настройках сервера процесс проверки полномочий обходится достаточно дорого. Нагрузка может быть снижена за счет выполнения этих функций только rio мере необходимости. Например, стратегия поведения для каталога верхнего уровня, например, /www/public, может предусматривать, что ни один из подкаталогов не требует проверки прав доступа. Это дает возможность серверу избежать дополнительных проверок в подкаталогах. Администратор сервера может ограничить проверку полномочий только для небольшого числа особо важных ресурсов, которые могут быть помещены в особый подкаталог. Это позволит минимизировать накладные расходы на аутентификацию и проверку полномочий, ограничивая в то же время доступ к данным там, где эго необходимо.

Источник: Web-протоколы. Теория и практика. — M.: ЗАО «Издательство БИНОМ», 2002 г. – 592 c.: ил.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100