Basic Auth dan Digest Auth adalah dua metode otentikasi yang digunakan dalam protokol HTTP untuk membatasi atau mengamankan akses dari pengguna yang tidak dikenal ke situs atau aplikasi dengan menampilkan popup pada browser berupa form untuk memasukan user dan password yang valid.
Basic Auth berbeda dengan Digest Auth, Basic Auth menggunakan enkripsi sederhana (base64) sedangkan Digest Auth menggunakan enkripsi yang lebih kuat dengan menggunakan fungsi hash sehingga menjadikannya lebih aman walau digunakan dalam koneksi HTTP.
Jika Anda lebih ingin menggunakan Basic Auth, disarankan untuk digunakan hanya dalam koneksi HTTPS yang aman.
Basic Auth #
Generate dengan command htpasswd
atau bisa melalui website htpasswd generator.
htpasswd -nb user password
Selanjutnya jalankan container dengan tambahan label traefik.http.middlewares.secure.basicauth.users=<output-htpasswd>
docker run -dit --name web1 \
-l web1 \
--label 'traefik.enable=true' \
--label 'traefik.http.routers.web1.rule=Host(`example.com`)' \
--label 'traefik.http.routers.web1.entrypoints=web' \
--label 'traefik.http.services.web1.loadbalancer.server.port=80' \
--label 'traefik.http.middlewares.secure.basicauth.users=admin:$apr1$uh086r5d$ZxLTyFgJyG5CYEsrdbk4B0' \
--label 'traefik.http.routers.web1.middlewares=secure' \
--label 'traefik.http.routers.web1.service=web1' \
nginxdemos/hello
Jika ingin menambahkan banyak user gunakan label traefik.http.middlewares.test-auth.basicauth.usersfile=/path/to/my/usersfile
Test akses http://example.com melalui browser Anda.
Digest Auth #
Buat file pass.txt
lalu generate dengan command htdigest
dan masukan passwordnya.
htdigest -c pass.txt traefik username
Anda juga dapat generate melalui website htdigest generator. {: .prompt-tip }
Selanjutnya jalankan container dengan menambahkan label traefik.http.middlewares.test-auth.digestauth.user=name:realm:encoded-password
docker run -dit --name web1 \
-l web1 \
--label 'traefik.enable=true' \
--label 'traefik.http.routers.web1.rule=Host(`example.com`)' \
--label 'traefik.http.routers.web1.entrypoints=web' \
--label 'traefik.http.services.web1.loadbalancer.server.port=80' \
--label 'traefik.http.middlewares.secure.digestauth.user=admin:traefik:9bfbed194484409dd8ec5868d8fb2bcb' \
--label 'traefik.http.routers.web1.middlewares=secure' \
--label 'traefik.http.routers.web1.service=web1' \
nginxdemos/hello
Jika ingin menambahkan banyak user gunakan label traefik.http.middlewares.test-auth.digestauth.usersfile=/path/to/my/usersfile
Test akses http://example.com melalui browser Anda.