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_basic
wird es wahrscheinlich satisfy
eher 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;
}
...
}