Http Basic Auth adalah sebuah metode sederhana yang dapat digunakan untuk melakukan proteksi sebuah url atau path pada website.
Jika sebuah domain atau path pada sebuah website memiliki tampilan seperti diatas, artinya domain atau path tersebut dilindungi oleh Http Basic Auth.
Kemudian jika anda salah dalam memasukkan username dan password, maka akan muncul tampilan seperti itu. Dan anda akan gagal mengakses resource yang anda inginkan.
Kemudian, bagaimana cara membuat sebuah domain atau path dapat dilindungi dengan basic auth? Pertama-tama kita akan membuat user file dan password, kemudian melakukan implementasi konfigurasi nginx http basic auth.
1. Membuat Password File untuk Http Basic Auth
Untuk membuat password file, anda harus menginstall apache2-utils(pada Debian base OS) dan httpd-tools(RHEL/CentOS/Oracle Linux). Cara install apache2-utils cukup mudah, yaitu dengan:
sudo apt get install apache2-utils
Fungsi apache2-utils ini digunakan untuk membuat user dan hashed password dari file htpaswd. Setelah itu, buatlah file .htpaswd yang akan menyimpan username dan hashed password dengan perintah.
sudo htpasswd -c /etc/nginx/.htpasswd user1
Ingat, untuk pertama kali membuat file, jangan lupa cantumkan parameter “-c”. Namun jika anda ingin menambahkan user baru, anda bisa langsung menggunakan perintah.
sudo htpasswd /etc/nginx/.htpasswd user2
Anda bisa mengecek konfigurasi file dengan perintah
cat /etc/nginx/.htpasswd
Setelah berhasil membuat password file, langkah selanjutnya adalah implementasi http basic auth ke nginx.
2. Konfigurasi Nginx Http Basic Auth menggunakan Password File
Langka berikutnya adalah melakukan konfigurasi pada file konfigurasi server nginx anda. Pertama, buka file server anda yang ingin anda konfigurasi.
nano /etc/nginx/sites-available/NAMAWEBSITEANDA
Kemudian anda dapat memproteksi domain anda dengan konfigurasi auth_basic seperi dibawah ini
server {
...
auth_basic "Administrator’s Area";
auth_basic_user_file /etc/nginx/.htpasswd;
...
location /public/ {
auth_basic off;
}
...
}
Kemudian, anda juga dapat melakukan proteksi pada sebuah path dengan konfigurasi berikut
location /api {
auth_basic "Administrator’s Area";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Setelah konfigurasi pada nginx server sudah dipasang, kemudian lakukan restart pada nginx dengan. Namun jangan lupa, check konfigurasi nginx terlebih dahulu dengan perintah
nginx -t
Jika tidak ada masalah, kemudian restart nginx anda
sudo systemctl restart nginx
Voillla… Domain atau directory anda telah diproteksi dengan http basic auth… Contoh ada di gambar awal ya 😉
Sumber tulisan: https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/