Du kanske aldrig har tänkt så mycket på vad Auth Basic är, men du har definitivt stött på det när du går in i routerns inställningar. Det här är vad man kallar mekanismen för auktorisering med användarnamn och lösenord på webbservernivå. Sådan auktorisering stöds i både Apache och Nginx. I den här instruktionen föreslår vi att du funderar på en sådan fråga som hur du konfigurerar Auth Basic för en specifik rutt eller en specifik webbplats.
Så här ser fönstret för Auth Basic-auktorisering ut:
Nu bör du förstå vad den här instruktionen handlar om. Det är möjligt att konfigurera auktorisering för en specifik URL, för hela webbplatsen eller för alla webbplatser. Men det första du måste göra är att skapa en fil med en lista över användare och lösenord. För detta ändamål kommer vi att använda verktyget htpasswd. Kommandots syntax är som följer:
$ sudo htpasswd -c /path/to/file username
I det här fallet används alternativet -c för att skapa en ny fil, du behöver inte använda det för att redigera tidigare skapade filer. Ett exempel:
$ sudo htpasswd -c /etc/nginx/auth.basic admin
Programmet kommer att göra en dubbel lösenordsförfrågan. Av säkerhetsskäl visas inte lösenordet, men det skrivs in. När du har skapat en sådan fil kan du gå direkt till konfigurationen av Nginx.
Om du vill lösenordsskydda alla resurser måste du lägga till ett direktiv i http-avsnittet
i filen /etc/nginx/nginx.conf:
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
För att skydda en specifik sidadress (URL) måste du lägga till ett direktiv i motsvarande platsblock. Detta kan vara /wp-admin/admin-ajax.php:
location /wp-admin/admin-ajax.php {
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
}
Om webbplatsen är på WordPress är det bäst att placera platsen
i location/
. Alla regler som beskrivs ovan kommer att fungera, och dessutom finns det ett skydd. Om du behöver tillåta åtkomst för en specifik plats
kommer direktivet att se ut som auth_basic "off":
location /wp-admin/admin-ajax.php {
auth_basic "off";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9002;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
PHP-bearbetning måste läggas till i platsblocket
, annars kommer användaren att uppmanas att ladda ner det skript som de har åtkomst till.
Det är alltså inte särskilt svårt att konfigurera åtkomst i Nginx. Du behöver bara konfigurera platsblocket korrekt.