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
  1. GodOfPussy

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

    1. admin (автор)

      Вас никто не заставляет, это best practices и требования заказчиков.

      1. GodOfPussy

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

Добавить комментарий для admin Отменить ответ

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: