Setelah sebelumnya kita udah bahas tentang pentingnya two-factor Authentication atau disingkat 2FA dalam mengamankan suatu apliakasi online, kali ini kita akan bahas tentang penerapan 2FA pada Spring Security. Udah gasabar ? kuy cekidot.
Dari blog sebelumnya kita sudah membahas beberapa metode yang digunakan pada 2FA kali ini kita akan membahas metode 2FA menggunakan software, software yang digunakan adalah Google Authenticator. Sebelumnya kita diharuskan untuk mengunduh Google Authenticator terlebih dahulu di play store atau app store. Pada spring security kita akan menambahkan fungsi baru kedalam sistem simple login dan menggunakan Google Authenticator untuk meng generate token.
Langkah penggunaan Google Authenticator sebagai 2FA adalah sebagai berikut :
- User akan registrasi dengan menginput data email dan password
- Setelah sukses registrasi user akan diarahkan ke sebuah halaman dimana sudah tersedia QR-Code hasil generate secret key dari user tersebut.
- Lalu user scaning QR-Code pada aplikasi Google Authenticator yang sudah diunduh sebelumnya
- Setelah itu pada aplikasi Google Authenticator akan terlihat deretan 6 digit unik code.
- Kemudian user menuju form login
- User memasukan email dan password yang sudah didaftarkan sebelumnya dan memasukan 6 digit kode unik yang tedapat pada Google Authenticator.
- Saat data valid maka user akan diijinkan masuk kehalaman selanjutnya.
Gimana ? kebayangkan alur proses nya ? ehehehe
Untuk menabahkan fungsi generate token kita akan menggunakan simple server-side library dengan menambahkan depedency pada pom.xml.
kita akan menyimpan secret key yang nantinya akan digunakan untuk generate token.
Setelah itu kita perlu menyesuaikan security configuration agar dapat menambahkan parameter tambahan, parameter yang dimaksud adalah verification token. Kita dapat menambahkan parameter tersebut dengan membuat CustomAuthenticationDeatilsSource.
Dan kita akan membuat CustomWebAuthenticationDetails.
Kemudian seperti inilah security configuration yang akan kita buat
Dan tentunya kita menambahkan paramater pada form login.
Untuk AuthenticationDetailsSource dapat dimodifikasi sesuai dengan kabutuhan kita.
Setelah itu kita juga perlu membuat AuthenticationProvider untuk menghandle paramater tambahan.
No comments:
Post a Comment