Možná jste nikdy nepřemýšleli o tom, co je to Auth Basic, ale určitě jste se s ním setkali, když jste vstoupili do nastavení svého routeru. Tak se nazývá mechanismus autorizace pomocí uživatelského jména a hesla na úrovni webového serveru. Takovéto autorizování je podporováno jak v Apache, tak v Nginx. V tomto návodu doporučujeme zvážit takovou otázku, jak nakonfigurovat Auth Basic pro konkrétní trasu nebo konkrétní web.
Takto vypadá okno autorizace Auth Basic:
Nyní byste měli pochopit, o čem je tento návod. Autorizaci je možné nakonfigurovat pro konkrétní adresu URL, pro celý web nebo pro všechny weby. Nejprve je však třeba vytvořit soubor se seznamem uživatelů a hesel. K tomuto účelu použijeme nástroj htpasswd. Syntaxe příkazu je následující:
$ sudo htpasswd -c /path/to/file username
V tomto případě se volba -c používá k vytvoření nového souboru, není třeba ji používat k úpravě dříve vytvořených souborů. Příklad: V příkladu je uveden příkaz htc:
$ sudo htpasswd -c /etc/nginx/auth.basic admin
Program provede dvojí požadavek na zadání hesla. Z bezpečnostních důvodů se heslo nezobrazuje, ale zadává se. Po vytvoření takového souboru můžete přejít přímo ke konfiguraci Nginxu.
Chcete-li chránit heslem všechny zdroje, musíte přidat směrnici do části http
souboru /etc/nginx/nginx.conf:
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
Chcete-li chránit konkrétní adresu stránky (URL), je třeba přidat směrnici do příslušného bloku umístění. Může to být například /wp-admin/admin-ajax.php
:
location /wp-admin/admin-ajax.php {
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
}
Pokud je web ve WordPressu, je nejlepší umístit umístění
do bloku location/
. Všechna výše popsaná pravidla budou fungovat, navíc je zajištěna ochrana. Pokud potřebujete povolit přístup pro konkrétní umístění
, bude směrnice vypadat jako 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 třeba přidat zpracování PHP, jinak bude uživatel vyzván ke stažení skriptu, ke kterému přistupuje.
Nastavení přístupu v Nginxu tedy není příliš složité. Stačí jen správně nakonfigurovat blok umístění.