view xml/ru/docs/http/ngx_http_auth_basic_module.xml @ 3099:9cfda14d0109 default tip

freenginx-1.27.4
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 03 Sep 2024 13:15:18 +0300
parents aea3e104f11d
children
line wrap: on
line source

<?xml version="1.0"?>

<!--
  Copyright (C) Igor Sysoev
  Copyright (C) Nginx, Inc.
  -->

<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">

<module name="Модуль ngx_http_auth_basic_module"
        link="/ru/docs/http/ngx_http_auth_basic_module.html"
        lang="ru"
        rev="12">

<section id="summary">

<para>
Модуль <literal>ngx_http_auth_basic_module</literal> позволяет
ограничить доступ к ресурсам с проверкой имени и пароля пользователя
по протоколу “HTTP Basic Authentication”.
</para>

<para>
Ограничить доступ можно также по
<link doc="ngx_http_access_module.xml">адресу</link> или по
<link doc="ngx_http_auth_request_module.xml">результату подзапроса</link>.
Одновременное ограничение доступа по адресу и паролю управляется
директивой <link doc="ngx_http_core_module.xml" id="satisfy"/>.
</para>

</section>


<section id="example" name="Пример конфигурации">

<para>
<example>
location / {
    auth_basic           "closed site";
    auth_basic_user_file conf/htpasswd;
}
</example>
</para>

</section>


<section id="directives" name="Директивы">

<directive name="auth_basic">
<syntax><value>строка</value> | <literal>off</literal></syntax>
<default>off</default>
<context>http</context>
<context>server</context>
<context>location</context>
<context>limit_except</context>

<para>
Включает проверку имени и пароля пользователя по протоколу
“HTTP Basic Authentication”.
Заданный параметр используется в качестве <value>realm</value>.
В значении параметра допустимо использование переменных (1.3.10, 1.2.7).
Специальное значение <literal>off</literal> отменяет действие
унаследованной с предыдущего уровня конфигурации
директивы <literal>auth_basic</literal>.
</para>

</directive>


<directive name="auth_basic_user_file">
<syntax><value>файл</value></syntax>
<default/>
<context>http</context>
<context>server</context>
<context>location</context>
<context>limit_except</context>

<para>
Задаёт файл, в котором хранятся имена и пароли пользователей.
Формат файла следующий:
<example>
# комментарий
имя1:пароль1
имя2:пароль2:комментарий
имя3:пароль3
</example>
В имени файла можно использовать переменные.
</para>

<para>
Пароли должны быть зашифрованы
<link url="https://ru.wikipedia.org/wiki/Crypt_(C)">функцией crypt()</link>.
Доступны все методы хэширования паролей, поддерживаемые операционной системой.
В частности, распространены следующие методы хэширования:

<list type="bullet">

<listitem>
основанный на MD5 метод, <literal>$1$</literal>;
</listitem>

<listitem>
основанный на SHA256 метод, <literal>$5$</literal>;
</listitem>

<listitem>
основанный на SHA512 метод, <literal>$6$</literal>.
</listitem>

</list>
</para>

<para>
Кроме того, поддерживаются следующие кросс-платформенные типы паролей:
<list type="bullet">

<listitem>
хэшированные с помощью основанного на MD5 метода по версии Apache
(<literal>$apr1$</literal>);
</listitem>

<listitem>
заданные согласно синтаксису
“<literal>{</literal><value>схема</value><literal>}</literal><value>данные</value>”
(1.0.3+) как описано в
<link url="https://datatracker.ietf.org/doc/html/rfc2307#section-5.3">RFC 2307</link>;
в настоящий момент реализованы схемы <literal>PLAIN</literal> (в качестве
примера, не следует применять), <literal>SHA</literal> (1.3.13) (простое SHA-1
хэширование, не следует применять) и <literal>SSHA</literal> (SHA-1 хэширование
с солью, также небезопасно по современным стандартам).
</listitem>

</list>
</para>

<para>
Хэши паролей для распространнённых методов хэширования могут быть сгенерированы
с помощью команды “<command>openssl passwd</command>”, например:

<example>
$ openssl passwd -apr1 secret
$apr1$x/muFo1c$zwUN24M2TEq.6wg0AZacn0
</example>
<example>
$ openssl passwd -6 secret
$6$FjZ1ss8ytcGmrGFY$1fopTJLuLUGCRlv2YcRPIsZk9uaD9NBOGcKsUay/BLV3RR1ol0ONS08oPTVqA4XBkZ44M7OL4K6NjP9xPKShP0
</example>
</para>

<para>
При выборе метода хэширования паролей следует учитывать, что
HTTP Basic Authentication подразумевает проверку пароля при каждом запросе.
</para>

</directive>

</section>

</module>