Модуль ngx_http_auth_basic_module
Пример конфигурации Директивы auth_basic auth_basic_user_file |
Модуль ngx_http_auth_basic_module
позволяет
ограничить доступ к ресурсам с проверкой имени и пароля пользователя
по протоколу “HTTP Basic Authentication”.
Ограничить доступ можно также по адресу или по результату подзапроса. Одновременное ограничение доступа по адресу и паролю управляется директивой satisfy.
Пример конфигурации
location / { auth_basic "closed site"; auth_basic_user_file conf/htpasswd; }
Директивы
Синтаксис: |
auth_basic |
---|---|
Умолчание: |
auth_basic off; |
Контекст: |
http , server , location , limit_except |
Включает проверку имени и пароля пользователя по протоколу
“HTTP Basic Authentication”.
Заданный параметр используется в качестве realm
.
В значении параметра допустимо использование переменных (1.3.10, 1.2.7).
Специальное значение off
отменяет действие
унаследованной с предыдущего уровня конфигурации
директивы auth_basic
.
Синтаксис: |
auth_basic_user_file |
---|---|
Умолчание: | — |
Контекст: |
http , server , location , limit_except |
Задаёт файл, в котором хранятся имена и пароли пользователей. Формат файла следующий:
# комментарий имя1:пароль1 имя2:пароль2:комментарий имя3:пароль3
В имени файла можно использовать переменные.
Пароли должны быть зашифрованы функцией crypt(). Доступны все методы хэширования паролей, поддерживаемые операционной системой. В частности, распространены следующие методы хэширования:
-
основанный на MD5 метод,
$1$
; -
основанный на SHA256 метод,
$5$
; -
основанный на SHA512 метод,
$6$
.
Кроме того, поддерживаются следующие кросс-платформенные типы паролей:
-
хэшированные с помощью основанного на MD5 метода по версии Apache
(
$apr1$
); -
заданные согласно синтаксису
“
{
схема
}
данные
” (1.0.3+) как описано в RFC 2307; в настоящий момент реализованы схемыPLAIN
(в качестве примера, не следует применять),SHA
(1.3.13) (простое SHA-1 хэширование, не следует применять) иSSHA
(SHA-1 хэширование с солью, также небезопасно по современным стандартам).
Хэши паролей для распространнённых методов хэширования могут быть сгенерированы
с помощью команды “openssl passwd
”, например:
$ openssl passwd -apr1 secret $apr1$x/muFo1c$zwUN24M2TEq.6wg0AZacn0
$ openssl passwd -6 secret $6$FjZ1ss8ytcGmrGFY$1fopTJLuLUGCRlv2YcRPIsZk9uaD9NBOGcKsUay/BLV3RR1ol0ONS08oPTVqA4XBkZ44M7OL4K6NjP9xPKShP0
При выборе метода хэширования паролей следует учитывать, что HTTP Basic Authentication подразумевает проверку пароля при каждом запросе.