Ptejte se
Poptat projekt

+420 605 905 191 · info@id-sign.com

Servery 2 min čtení · 07/2021

Http Basic Auth v Nginx

Návod, jak jednoduše nastavit Http Basic Auth pro webový server Nginx.

Pokud vznikne potřeba schovat webové stránky za nějaké jednoduché přihlášení a používáte webový server Nginx, tak lze velmi jednoduše využít Http Basic Auth mechanismus. Pokud používáte webový server Apache, podívejte se na článek Http Basic Auth s Apache serverem a .htaccess

Nastavení Http Basic Authentication je velmi jednoduché a rychlé. V podstatě nám stačí pouze vygenerovat si soubor s přihlašovacími údaji a vložit dva řádky do konfigurace domény v nginx.

Vytvoření souboru s přihlašovacími údaji je snadné. Můžeme k tomu buďto využít nějakou online službu, např. https://hostingcanada.org/htpasswd-generator/ nebo využít příkaz htpasswd:

bash
$ htpasswd -bcB .htpasswd username password

Tímto vygenerujeme soubor .htpasswd přímo v aktuálním adresáři a použité parametry -bcB definují:

  • b - Heslo zadáváme přímo v příkazu.
  • c - Požadovaný soubor chceme vytvořit. Pokud již soubor existuje, tak bude přepsán!
  • B - Pro šifrování hesla použijeme bcrypt

Pokud příkaz htpasswd nemáte k dispozici, lze si jej velmi snadno nainstalovat z balíčku apache2-utils (nebo httpd-tools v RedHat světě). V Debian/Ubuntu světě instalace velmi snadno pomocí:

bash
# V Debianu jako root
apt install apache2-utils

# V Ubuntu pomocí sudo
sudo apt install apache2-utils

Přihlášení poté můžeme nastavit buďto pouze pro určitou část webu pomocí direktivy location:

nginx
location /api {
    auth_basic "Login required";
    auth_basic_user_file /path/to/.htpasswd; 
}

Nebo snadno i pro komplet web umístěním přímo do definice serveru:

nginx
server {
    ...
    auth_basic "Login required";
    auth_basic_user_file /path/to/.htpasswd;

Podpora pro Basic Auth je v Nginx pouze základní a proto nelze, narozdíl třeba od Apache serveru, konkrétně specifikovat jaký uživatel se může přihlásit. Přihlásit se budou moci všichni uživatelé definovaní v auth souboru.

Pro kompletní možnosti nastavení doporučuji si projít oficiální dokumentaci Http Basic Auth v Nginx.

Sdílet
LinkedIn Facebook

Potřebujete víc než článek?

Zkuste se nám nezávazně ozvat – stačí několik vět o tom, co řešíte.

Dál čtěte

Podobné články

Další zápisky z provozu a vývoje.

Celá poradna