Implementasi Google Authenticator pada C#

Implementasi Google Authenticator pada C#

 

Belakangan ini aplikasi Google Authenticator muncul sebagai pilihan terbaik untuk keperluan information security alasannya karena praktis dan kompatibel untuk seluruh operating system, selain itu aplikasi ini mampu menjaga data pribadi sehingga tidak akan terjadi kebocoran.

Pada artikel ini kali ini kita akan membahas tentang aplikasi Google Authenticator ini.  Bagaimana cara untuk implementasi terhadap aplikasi yang menggunakan bahasa C#.

 

 

Apa itu Google Authenticator

 

Melansir The Verge, Google Authenticator adalah salah satu aplikasi otentikasi dua faktor (2FA) terbaik dan termudah untuk menjaga keamanan akun online-mu. Cara kerja aplikasi ini adalah dengan mengeluarkan kode otentikasi ke smartphone pengguna ketika seseorang mencoba mengakses akun pribadi mereka. Jika orang yang mengakses akun tidak memiliki kode otentikasi, ia tidak dapat masuk ke dalam akun tersebut. 

Dengan menggunakan aplikasi 2FA seperti Google Authenticator, kamu bisa mencegah orang asing untuk mengakses data meskipun ia memiliki kata sandi akun kamu.  Google Authenticator memungkinkan pengguna untuk melakukan 2FA menggunakan smartphone pribadi mereka dengan cara memindai kode QR yang dibuat oleh aplikasi pada perangkat terpisah.

Selain itu, hal itu dapat pula dilakukan dengan memasukkan kode kunci sederhana.  Proses ini sebenarnya relatif mudah kecuali jika pengguna harus memindahkan aplikasi ke smartphone baru.

 

 

Kelebihan Google Authenticator

 

Seperti yang sudah dijelaskan, Google Authenticator adalah pilihan banyak orang sebagai penjaga data pribadi mereka. Hal tersebut dipicu oleh berbagai kelebihan yang dimiliki oleh aplikasi ini. Dan berikut adalah penjelasan mengenai kelebihan Google Authenticator menurut Trust Radius:

1. Mudah digunakan

Salah satu kelebihan Google Authenticator yang paling mencolok adalah aplikasi tersebut sangat mudah untuk digunakan. Desain antarmukanya intuitif dan proses set up-nya mudah. Pengguna cukup buka dan tambahkan akun mereka untuk menggunakan Google Authenticator. 

 

2. Otentikasi antirepot

Selain itu, proses otentikasi dan  keamanan data Google Authenticator menyediakan proses yang tidak rumit. Pengguna cukup memasukan kunci yang telah mereka sediakan pada perangkat mereka. 

 

3. Instan dan praktis

Aplikasinya sendiri juga cepat. Kamu dijamin tidak akan melihat adanya penundaan antara proses set up dan mendapatkan konfirmasi 2FA.  Salah satu keunggulan aplikasi Google Authenticator adalah bahwa pengguna akan mendapatkan pemberitahuan instan saat diminta untuk mengotentikasi akun mereka.

 

 

Implementasi terhadap aplikasi berbahasa C#

 

Setelah mengetahui sedikit definisi dan keuntungan dari aplikasi ini, selanjutnya mari kita coba buat sistem login sederhana menggunakan Google Authentication menggunakan bahasa pemrograman C#. Pertama-tama kalian bisa menggunakan page sistem login dari project-project C# kalian sebelumnya kemudian buat method Post untuk login pada action method controller dan tambahkan code seperti dibawah ini:

[HttpPost] 

public ActionResult Login(LoginModel login) { 

      bool status = false; 

      if (Session["Username"] == null || Session["IsValid2FA"] == null || !(bool) Session["IsValid2FA"]) { 

          string googleAuthKey = WebConfigurationManager.AppSettings["GoogleAuthKey"]; 

          string UserUniqueKey = (login.UserName + googleAuthKey); 


          //Take UserName And Password As Static - Admin As User And 12345 As Password 

          if (login.UserName == "Admin" && login.Password == "12345") { 

                Session["UserName"] = login.UserName; 


                //Two Factor Authentication Setup 

                TwoFactorAuthenticator TwoFacAuth = new TwoFactorAuthenticator(); 

                var setupInfo = TwoFacAuth.GenerateSetupCode("UdayDodiyaAuthDemo.com", login.UserName, ConvertSecretToBytes(UserUniqueKey, false), 300); 


                Session["UserUniqueKey"] = UserUniqueKey; 

                ViewBag.BarcodeImageUrl = setupInfo.QrCodeSetupImageUrl; 

                ViewBag.SetupCode = setupInfo.ManualEntryKey; 

                status = true; 

           } 

     } 

     else { 

         return RedirectToAction("Index"); 

     } 

     ViewBag.Status = status; 

     return View(); 

}

Tahap berikutnya buat metode “TwoFactorAuthenticate” untuk validasi code yang didapatkan dari Google Authenticator seperti dibawah ini:

[HttpPost]

public ActionResult TwoFactorAuthenticate() { 

     var token = Request["CodeDigit"]; 

     TwoFactorAuthenticator TwoFacAuth = new TwoFactorAuthenticator(); 

     string UserKey = Session["UserUniqueKey"].ToString(); 

     bool isValid = TwoFacAuth.ValidateTwoFactorPIN(UserUniqueKey, token, false); 

     if (isValid) { 

        Session["IsValid2FA"] = true; 

        return RedirectToAction("Index"); 
     } 

     ViewBag.Message = "Google Two Factor PIN is expired or wrong"; 

     return RedirectToAction("Login"); 
}

 

Berikut ini adalah tampilan pada halaman login

 

 

 

 

 

 

 

Kemudian masukan username dan password, maka akan muncul halaman seperti dibawah ini untuk input code yang didapatkan oleh google authenticator.

 

 

 

 

 

 

 

 

 

Masukan  kode yang didapat pada aplikasi google authenticator seperti dibawah ini, jika sukses login akan berhasil.

 

Demikian pembahasan Google Authentication dan cara sederhana implementasinya.

Daftar Pustaka

https://www.c-sharpcorner.com/article/two-factor-authentication-using-google-authenticator-in-asp-net-mvc/

https://glints.com/id/lowongan/google-authenticator-adalah/

https://www.theverge.com/21410260/google-authenticator-2fa-how-to-phone-security-iphone-android

https://www.trustradius.com/products/google-authenticator/reviews#:~:text=set%20weak%20passwords.-,Pros%20and%20Cons,that%20authentication%20is%20fairly%20straightforward.

Penulis :

Aditya Hikmat Tsauqi – EAS – Application Developer

Related Posts