Ограничение доступа к Web-ресурсу
Часто возникает необходимость предоставить доступ к ресурсу не всем поль- зователям, а только тем, кто прошел процедуру аутентификации. Естествен- но, для этого необходимо иметь механизм для накопления сведений о зареги- стрированных пользователях системы.
Простейшим методом обеспечения этого является подключение модуля
mod_auth.c.
Для аутентификации пользователей размещают специальный файл .htaccess в каталоге, к которому требуется ограничить доступ. В файле конфигурации Apache для этого должна присутствовать строка, приведенная в примере 28.11.
Пример 28.11. Указание имени файла управления доступом |
AccessFileName .htaccess
В контейнере, связанном с защищаемым ресурсом, должно быть разрешение изменять правила аутентификации, что достигается с помощью директивы AllowOverride AuthConfig. Так, например, для ограничения доступа к катало- гу /var/www/html/secret можно организовать в соответствии с примером 28.12.
Пример 28.12. Разрешение изменять правила аутентификации |
<Directory /var/www/html/secret> Options Indexes FollowSymLinks AllowOverride AuthConfig
</Directory>
В этом примере наиважнейшей является настройка AllowOverride AuthConfig, т. к. она разрешает изменять правила аутентификации, указывая их в файле конфигурации .htaccess. Файл .htaccess должен быть размещен в защищаемом каталоге и должен быть доступен только для чтения пользователю, от имени которого запускается Apache.
При использовании простого метода аутентификации, основанного на наличии файла, в котором находятся имена авторизованных пользователей и их пароли, в файл .htaccess следует поместить строки, показанные в примере 28.13.
Пример 28.13. Защита ресурса паролем |
AuthName "Unauthorized access is strongly prohibited!" AuthType Basic
AuthUserFile /etc/httpd/htpasswd Require valid-user
Директива AuthName позволяет задать сообщение, выводимое в диалоговом окне аутентификации при попытке доступа к этому ресурсу. Директива AuthType задает тип аутентификации с использованием передачи паролей, закодированных uuencode. Этот способ прост, но не безопасен. Файл, в кото- ром хранятся имена пользователей и зашифрованные пароли, указывается с помощью директивы AuthUserFile.
Файл, содержащий имена авторизованных пользователей, может быть создан с помощью команды htpasswd. Эта утилита позволяет задавать пароли для пользователей защищаемого ресурса (пример 28.14).
Пример 28.14. Сохранение имен пользователей и паролей |
# htpasswd -c /etc/httpd/htpasswd webuser New password:
Re-type new password:
Adding password for user webuser
# htpasswd /etc/httpd/htpasswd weberus New password:
Re-type new password:
Adding password for user weberus
# cat /etc/httpd/htpasswd webuser:Zi6v4CjM7y5J2 weberus:83Ygmk1dHcLzM
Обратите внимание, что при первом вызове команды htpasswd была исполь- зована опция -c для создания файла паролей. При последующем использо- вании этой команды опцию -c устанавливать не надо, т. к. она сотрет файл паролей.
После выполнения указанных процедур правами на доступ к защищаемому ресурсу будут пользоваться только авторизованные пользователи, а при по- пытке получения доступа к защищаемому ресурсу будет выводиться пригла- шение ввести пароль и имя пользователя.
Дата добавления: 2015-06-12; просмотров: 548;