NGINX-Basisauthentifizierung: Umgehung der IP-Adresse oder des Benutzeragenten

NGINX-Basisauthentifizierung: Umgehung der IP-Adresse oder des Benutzeragenten

So richten Sie die Umgehung der Basisauthentifizierung per IP-Adresse oder Benutzeragent in NGINX ein. Wenn ich es so einstelle:

map $http_user_agent $auth {
    default on;
    "~curl" "off";
}

server  {
.......
satisfy any;
allow 1.2.3.4;
allow 5.6.7.8;
deny all;
auth_basic $auth;
auth_basic_user_file /etc/nginx/.htpasswd;
.....
}

Wenn ich dann von einer anderen Adresse als der Whitelist mit dem Benutzeragenten curl einsteige, erhalte ich eine 403.

Antwort1

Durch das Deaktivieren auth_basicwird es wahrscheinlich satisfyeher entfernt, als dass es wahr wird.

Sie können das gewünschte Ziel erreichen, indem Sie ein weiteres Autorisierungsschema hinzufügen.Authentifizierungsanforderung.

Zum Beispiel:

map $http_user_agent $auth {
    "~curl"  1;
}

server {
    ...

    satisfy any;

    allow 1.2.3.4;
    allow 5.6.7.8;
    deny all;

    auth_basic "Password protected";
    auth_basic_user_file /etc/nginx/.htpasswd;

    auth_request /auth;
    location = /auth {
        internal;
        if ($auth) { return 200; }
        return 401;
    }

    ...
}

verwandte Informationen