Et ehkä ole koskaan miettinyt, mikä Auth Basic on, mutta olet varmasti törmännyt siihen, kun olet mennyt reitittimesi asetuksiin. Tätä kutsutaan mekanismiksi, jossa valtuutus tapahtuu käyttäjätunnuksen ja salasanan avulla verkkopalvelimen tasolla. Sekä Apache että Nginx tukevat tällaista valtuutusta. Tässä ohjeessa ehdotamme pohdittavaksi sellaista kysymystä, miten Auth Basic voidaan konfiguroida tietylle reitittimelle tai tietylle sivustolle.
Tältä näyttää Auth Basic -valtuutusikkuna:
Nyt sinun pitäisi ymmärtää, mistä tässä ohjeessa on kyse. On mahdollista määrittää valtuutus tietylle URL-osoitteelle, koko sivustolle tai kaikille sivustoille. Ensimmäiseksi on kuitenkin luotava tiedosto, jossa on luettelo käyttäjistä ja salasanoista. Tätä varten käytämme htpasswd-apuohjelmaa. Komennon syntaksi on seuraava:
$ sudo htpasswd -c /path/to/file username
Tässä tapauksessa -c-vaihtoehtoa käytetään uuden tiedoston luomiseen, sitä ei tarvitse käyttää aiemmin luotujen tiedostojen muokkaamiseen. Esim:
$ sudo htpasswd -c /etc/nginx/auth.basic admin
Ohjelma tekee kaksinkertaisen salasanapyynnön. Turvallisuussyistä salasanaa ei näytetä, vaan se syötetään. Kun olet luonut tällaisen tiedoston, voit siirtyä suoraan Nginxin konfigurointiin.
Jos haluat suojata kaikki resurssit salasanalla, sinun on lisättävä direktiivi /etc/nginx/nginx.conf-tiedoston
http-osioon
:
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
Jos haluat suojata tietyn sivun osoitteen (URL-osoitteen), sinun on lisättävä direktiivi vastaavaan location-lohkoon. Tämä voi olla esimerkiksi /wp-admin/admin-ajax.php
:
location /wp-admin/admin-ajax.php {
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
}
Jos sivusto on WordPressissä, sijainti
kannattaa sijoittaa location/-kohtaan
. Kaikki edellä kuvatut säännöt toimivat, ja lisäksi tarjotaan suojaus. Jos haluat sallia pääsyn tiettyyn sijaintiin
, direktiivi näyttää 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-käsittely on lisättävä location-lohkoon
, muuten käyttäjää pyydetään lataamaan skripti, jota hän käyttää.
Näin ollen pääsyn määrittäminen Nginxissä ei ole kovin vaikeaa. Sinun on vain määritettävä location block oikein.