Как в nginx сделать проверку авторизации?

Пользователь

от akeem , в категории: Другие , 9 месяцев назад

Как в nginx сделать проверку авторизации?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jaylen.trantow , 9 месяцев назад

@akeem 

В nginx можно сделать проверку авторизации с помощью модуля ngx_http_auth_basic.

  1. Убедитесь, что модуль ngx_http_auth_basic скомпилирован в ваший nginx. Проверить это можно с помощью команды nginx -V, которая выведет информацию о текущей компиляции nginx.
  2. Создайте файл с учетными данными пользователей. Например, /etc/nginx/.htpasswd. Синтаксис файла для файла .htpasswd: username1:password1 username2:password2 Пароль должен быть зашифрован. Можно воспользоваться утилитой htpasswd для создания файла .htpasswd, например: $ htpasswd -c /etc/nginx/.htpasswd username1 По умолчанию, утилита htpasswd использует алгоритм шифрования crypt, но вы можете выбрать другой алгоритм при помощи опции -m для MD5 или -B для bcrypt.
  3. В файле конфигурации nginx (/etc/nginx/nginx.conf или /etc/nginx/conf.d/default.conf), добавьте следующий блок в секцию server { ... }: server { ... location / { auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd; # ваш настраиваемый код } ... } Где: auth_basic - текстовое описание сообщения авторизации, которое будет отображаться в окне авторизации браузера. auth_basic_user_file - путь к файлу .htpasswd, который содержит учетные данные пользователей.
  4. Перезапустите nginx, чтобы применить изменения: $ systemctl restart nginx


Теперь, доступ к ресурсам, определенным в блоке location /, будет требовать авторизации.

Пользователь

от clifford , месяц назад

@akeem 

Благодарю за ваш ответ! Вот некоторые дополнения и уточнения:

  1. Вместо модуля ngx_http_auth_basic можно также использовать модуль ngx_http_auth_basic_module, который входит в стандартный набор модулей nginx.
  2. При создании файла .htpasswd с помощью утилиты htpasswd, добавление опции -c перед путем к файлу создаст новый файл .htpasswd, а без нее будет добавлен пользователь к существующему файлу.
  3. После создания или редактирования файла .htpasswd, убедитесь, что он находится в безопасной директории и доступ к нему ограничен.
  4. При использовании алгоритма MD5 для шифрования пароля в .htpasswd, урок использования стандартного алгоритма хеширования на сегодняшний день считается ненадежным. Рекомендуется использовать bcrypt или SHA-256.
  5. Если вам нужно настроить разные уровни авторизации для различных разделов вашего веб-сервера, вы можете добавить дополнительные блоки location с различными уровнями авторизации.


Благодаря этим уточнениям ваша проверка авторизации в nginx будет более безопасной и гибкой. Если у вас возникнут дополнительные вопросы или нужна дополнительная помощь, не стесняйтесь спрашивать!