Требование базовой аутентификации в зависимости от источника запроса (фильтрация по стране с геомодулем) - PullRequest
0 голосов
/ 25 сентября 2019

Есть ли способ, которым я могу требовать базовую аутентификацию в зависимости от источника запроса, фильтрации по странам?Моя цель - иметь возможность всегда запрашивать базовую аутентификацию, кроме случаев, когда запрос поступает из стран X, Y или Z.

1 Ответ

1 голос
/ 25 сентября 2019

В этом ответе предполагается, что модуль уже установлен и работает, существует множество хороших руководств по его установке, поэтому я пропущу его.

Вы можете отобразить geoIP с помощью:

geoip_country /path/to/GeoIP/GeoIP.dat;
map $geoip_country_code $not_auth_required {
    default no;
    ZZ yes;
    YY yes;
    XX yes;
}

И затем установить базовый аутентификатор для всех, кроме тех, которые:

server {
    listen 80;
    root   /foo/bar/baz;
    auth_basic           “Wrong Country";
    auth_basic_user_file /etc/nginx/.htpasswd; #typical user:$hash auth.

    if ($not_auth_require = yes) {
        auth_basic off;
    }


    location / {
         #do things
    }
}

Теоретически эта логика должна сработать, поскольку вам нужен белый список, а не черный список.Я надеюсь, что помог

...