Du har måske aldrig tænkt over, hvad Auth Basic er, men du er helt sikkert stødt på det, når du går ind i din routers indstillinger. Det er det, de kalder mekanismen for autorisation med brugernavn og adgangskode på webserverniveau. En sådan autorisation understøttes af både Apache og Nginx. I denne vejledning foreslår vi, at man overvejer, hvordan man konfigurerer Auth Basic for en bestemt rute eller et bestemt websted.
Sådan ser Auth Basic-autorisationsvinduet ud:
Nu skulle du gerne forstå, hvad denne instruktion handler om. Det er muligt at konfigurere autorisation for en bestemt URL, for hele sitet eller for alle sites. Men det første, du skal gøre, er at oprette en fil med en liste over brugere og adgangskoder. Til dette formål vil vi bruge htpasswd-værktøjet. Kommandoens syntaks er som følger:
$ sudo htpasswd -c /path/to/file username
I dette tilfælde bruges indstillingen -c til at oprette en ny fil, du behøver ikke bruge den til at redigere tidligere oprettede filer. Et eksempel:
$ sudo htpasswd -c /etc/nginx/auth.basic admin
Programmet vil anmode om en dobbelt adgangskode. Af sikkerhedshensyn vises adgangskoden ikke, men den indtastes. Når du har oprettet en sådan fil, kan du gå direkte til konfigurationen af Nginx.
For at beskytte alle ressourcer med adgangskode skal du tilføje et direktiv til http-afsnittet
i filen /etc/nginx/nginx.conf:
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
For at beskytte en bestemt sideadresse (URL) skal du tilføje et direktiv til den tilsvarende placeringsblok. Det kunne være /wp-admin/admin-ajax.php:
location /wp-admin/admin-ajax.php {
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
}
Hvis webstedet er på WordPress, er det bedst at placere placeringen
i location/
. Alle de regler, der er beskrevet ovenfor, vil fungere, og der er desuden beskyttelse. Hvis du har brug for at give adgang til en bestemt placering
, vil direktivet se ud 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-behandling skal tilføjes til placeringsblokken
, ellers vil brugeren blive bedt om at downloade det script, de har adgang til.
Det er altså ikke så svært at sætte adgang op i Nginx. Du skal bare konfigurere placeringsblokken korrekt.