Basic Authentication pada Apache Tomcat

BASIC Authentication adalah autentikasi lewat protokol HTTP untuk mendapatkan hak akses suatu site yang dilindungi dengan autentikasi ini. Autentikasi BASIC merupakan autentikasi yang paling tidak aman, karena user dan password hanya dienkripsi dengan base-64 encoder. Hanya dengan usaha ringan, kita bisa mendapatkannya kembali dengan base-64 decoder.

Tomcat memiliki fitur ini untuk melindungi aplikasi-aplikasi web yang ada padanya. Kuncinya ada di dua file, %TOMCAT_HOME%/conf/tomcat-users.xml dan WEB-INF/web.xml di setiap aplikasi yang ingin dilindungi dengan BASIC Authentication. tomcat-users.xml berisi daftar role dan user yang ada di server dan ditulis secara hardcoded. Berikut contohnya:



<?xml version='1.0' encoding='utf-8'?>

<tomcat-users>  

  <role rolename="manager"/>

  <role rolename="admin"/>  

  <user username="admin" password="admin" roles="admin,manager"/>

</tomcat-users>



Role adalah nama hak akses yang bisa didapatkan. Secara default, admin dan manager adalah role di Tomcat yang bisa mendapatkan hak akses sebagai administrator untuk melakukan administrasi server lewat HTTP. User adalah detail setiap user dengan user name dan password serta role apa yang dimilikinya — tiap role dipisahkan dengan tanda koma.

Kemudian, untuk melindungi aplikasi web, pada WEB-INF/web.xml tambahkan tag-tag berikut ini:



<security-constraint>

  <web-resource-collection>

    <web-resource-name>

      Nama Web Aplikasi

    </web-resource-name>

    <url-pattern>/*</url-pattern>

  </web-resource-collection>

  <auth-constraint>

      <role-name>admin</role-name>

  </auth-constraint>

</security-constraint>

<!-- Define the Login Configuration for this Application -->

<login-config>

  <auth-method>BASIC</auth-method>

  <realm-name>Passwordmu ndul!</realm-name>

</login-config>

Bagian pertama adalah tag <security-constraint>. Hal penting di sini adalah <url-pattern> yang mendefinisikan bentuk URL yang akan dilindungi mulai dari path mana. /* berarti aplikasi ini akan dilindungi dengan BASIC Auth mulai dari root directory web ini. Tag <role-name> adalah role yang berhak mengakses aplikasi ini. Dalam hal ini, user pada tomcat-users.xml yang memiliki role admin yang boleh mengakses aplikasi ini.

Bagian kedua adalah konfigurasi login dan metode login. Karena kita ingin model autentikasi aplikasi ini adalah BASIC, maka <auth-method> kita isi dengan BASIC. <realm-name> adalah nama dari autentikasi ini yang akan muncul sebagai keterangan pada saat prompt user dan password dimunculkan oleh browser.


By Galih Satriaji

Bookaholic, Workaholic. Chubby. That's me!

Leave a comment

Your email address will not be published. Required fields are marked *