Nginx: исключение для basic auth

Краткая заметка по настройке авторизации в Nginx. Кейс использую в случае, когда пользователям в офисе (т.е. сотрудникам компании) сайт должен быть доступен без каких-либо ограничений, а внешним пользователям необходимо авторизоваться посредством http basic auth.

На балансировщике в нужном конфигурационном файле:

server {
        server_name server_name.ru;
        return 301 https://$host$request_uri;
}

map $remote_addr $auth {
        default "Access Denied";
        10.10.4.1 "off";
}

server {
        auth_basic      $auth;
        auth_basic_user_file /etc/nginx/.htpasswd;
        server_name server_name.ru;
        listen 443;
...

В вышеописанном случае конструкция map идеально решает задачу: трафик сотрудников компании приходит с адреса 10.10.4.1, для которого авторизация отключается, а для всех остальных по дефолту включена.

3 мыслей о “Nginx: исключение для basic auth”

  1. Почему меня везде заставляют и учат использовать https вместо http? Это проблема исключительно пользователя. Зашёл без шифрования – значит нужно и работать без него, а не принудительно включать TLS. Сначала заставляют придумывать “сложные” пароли, теперь вот заставляют через https исключительно заходить на сайт. Что дальше? Нужно будет номер банковской карты и cvv код обязательно оставлять, чтобы пустили на сайт и будет это конечно “в целях безопасности”.

      1. Можете написать ваше личное отношение по этому вопросу. Как вы относитесь к той тенденции, что компании стремятся решать вопросы безопасности (и не только) за пользователя, не спросив его мнения? Примеры я описал выше – принуждение делать сложные пароли, принуждение использовать https и т.п.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *