Možno ste sa nikdy nezamýšľali nad tým, čo je Auth Basic, ale určite ste sa s ním stretli, keď ste vstúpili do nastavení smerovača. Takto sa nazýva mechanizmus autorizácie pomocou používateľského mena a hesla na úrovni webového servera. Takáto autorizácia je podporovaná v Apache aj Nginx. V tomto návode navrhujeme zvážiť takú otázku, ako nakonfigurovať Auth Basic pre konkrétnu trasu alebo konkrétnu stránku.
Takto vyzerá okno autorizácie Auth Basic:
Teraz by ste mali pochopiť, o čom je tento návod. Autorizáciu je možné nakonfigurovať pre konkrétnu adresu URL, pre celú lokalitu alebo pre všetky lokality. Najskôr je však potrebné vytvoriť súbor so zoznamom používateľov a hesiel. Na tento účel použijeme nástroj htpasswd. Syntax príkazu je nasledujúca:
$ sudo htpasswd -c /path/to/file username
V tomto prípade sa parameter -c používa na vytvorenie nového súboru, nemusíte ho používať na úpravu skôr vytvorených súborov. Napríklad:
$ sudo htpasswd -c /etc/nginx/auth.basic admin
Program vykoná dvojitú požiadavku na heslo. Z bezpečnostných dôvodov sa heslo nezobrazuje, ale zadáva sa. Po vytvorení takéhoto súboru môžete prejsť priamo do konfigurácie Nginx.
Ak chcete chrániť heslom všetky zdroje, musíte pridať smernicu do časti http
súboru /etc/nginx/nginx.conf:
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
Ak chcete chrániť konkrétnu adresu stránky (URL), musíte pridať smernicu do príslušného bloku umiestnenia. Môže to byť napríklad /wp-admin/admin-ajax.php:
location /wp-admin/admin-ajax.php {
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
}
Ak sa stránka nachádza v systéme WordPress, najlepšie je umiestniť umiestnenie
do umiestnenia/
. Budú fungovať všetky pravidlá opísané vyššie a navyše je zabezpečená ochrana. Ak potrebujete povoliť prístup pre konkrétne umiestnenie
, smernica bude vyzerať ako 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;
}
Do bloku location
bude potrebné pridať spracovanie PHP, inak bude používateľ vyzvaný na stiahnutie skriptu, ku ktorému pristupuje.
Nastavenie prístupu v systéme Nginx teda nie je príliš zložité. Musíte len správne nakonfigurovať blok umiestnenia.