Membatasi Akses Dengan HTTP Basic Auth Nginx

بِسْمِ اللهِ الرَّحْمٰنِ الرَّحِيْمِ

Hai teman….
tau ga ternyata kita bisa membatasi akses ke website kita dengan memberikan user dan password otentifikasi. User dan password ini didapat dari sebuah file yang dibuat dari tool terkenal seperti apache2-utils.

HTTP basic auth dapat juga dipadukan dengan metode pembatas akses lainnya. Misalnya membatasi akses berdasarkan alamat atau geographical location.

Sek sek bahasanya agak ribet, kita buat mudah aja ya, jadi gini dengan basic auth kita bisa membatasi akses menujut website kita, ketika kita membuka alamat website kita akan muncul popup meminta username dan password nah kalo bener baru dah tuh bisa kebuka isinya, kalo salah maka akan muncul pesan error, like gini:

basic auth batutah.id

lucu kaan. 😙

Nah untuk membuatnya kita perlu install toolsnya dulu yaitu:

  • apache2-utils untuk debian sekeluarga.
    • Perintahnya gini sudo apt install -y apache2-utils
  • httpd-tools untuk RedHat sekeluarga.
    • Perintahnya gini sudo yum install httpd-tools

Buat Passwornya

  1. Untuk membuat password pertama kali menggunakan perintah htpasswd diikuti dengan flag -c lalu pertama dan nama usernya pada argument kedua.

      $ sudo htpasswd -c /etc/nginx/htpasswd/batutah.id batutah
  2. Untuk membuat user lain pada file yang sama hilangkan flag -c

      $ sudo htpasswd /etc/nginx/htpasswd/batutah.id batutah2
  3. Kita bisa memastikan hasilnya dengan melihat isi file yang kita buat tadi.

    $ cat /etc/nginx/htpasswd/batutah.id

    isinya bakal kayak gini

    batutah:$apr1$/woC1jnP$KAh0SsVn5qeSMjTtn0E9Q0
    batutah2:$apr1$QdR8fNLT$vbCEEzDj7LyqCMyNpSoBh/

Config Server Block Nginx

  1. Masuk ke lokasi server block yang ingin kita tambahkan basic authnya, lalu tambahkan baris seperti berikut:

    server {
    ...
    auth_basic           "Administrator’s Area";
    auth_basic_user_file /etc/nginx/htpasswd/batutah.id; # nah yang ini fullpath file yang kita buat tadi
    
    location /public/ {
        auth_basic off;
    }
    }

    baris auth_basic untuk meletakakkan dimana popup akan muncul untuk menanyakan username password. bisa diletakkan pada baris server atau juga di baris aplikasi
    auth_basic_user_file /etc/nginx/htpasswd/batutah.id; ini fullpath file basic auth yang kita buat tadi

Udah deh jadi. yeay… 😬


05 Februari 2019
09:37 WIB
Cibubur, Jakarta Timur
DKI Jakarta

comments powered by Disqus