Lompat ke konten
Home » Memproteksi Domain atau Path web menggunakan Auth Basic Nginx

Memproteksi Domain atau Path web menggunakan Auth Basic Nginx

Http Basic Auth Nginx

Http Basic Auth adalah sebuah metode sederhana yang dapat digunakan untuk melakukan proteksi sebuah url atau path pada website.

Contoh halaman yang diproteksi oleh auth basic.
Contoh halaman yang diproteksi oleh basic auth.

Jika sebuah domain atau path pada sebuah website memiliki tampilan seperti diatas, artinya domain atau path tersebut dilindungi oleh Http Basic Auth.

Halaman jika salah memasukkan kredensial pada 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/

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *