Living life and Make it Better

life, learn, contribute

Endy Muhardin

Software Developer berdomisili di Jabodetabek, berkutat di lingkungan open source, terutama Java dan Linux.

Implementasi Single Sign On dengan Google

Jaman sekarang eranya integrasi antar aplikasi. Aplikasi A ingin mengakses data di Aplikasi B. Apalagi dengan mewabahnya arsitektur microservice, bahkan sesama aplikasi yang kita buat juga ingin berkomunikasi antar aplikasi.

Dengan sekian banyak aplikasi, tentunya akan sangat mengganggu user kalau dia harus login berkali-kali di tiap aplikasi tersebut. Untuk itu kita harus membuat semacam login server, di mana semua user akan login di sana dan semua aplikasi akan mengecek di sana apakah user tersebut sudah login atau belum.

Biasanya, hal ini kita menggunakan standar protokol OAuth 2.0 dan atau OpenID Connect. Lebih detail tentang protokol ini bisa ditonton di video saya di Youtube.

Dalam Spring Security 4 dan Spring Boot 1, kita mendapatkan fitur untuk membuat Authorization Server, Resource Server, dan Client Application. Akan tetapi, di Spring Security 5, mereka berencana untuk melakukan perombakan besar-besaran. Di Spring Security versi 5.0, para pengembang Spring sudah menyediakan dukungan Client Application yang baru. Ini sudah masuk dalam Spring Boot 2.0.

Dukungan terhadap Resource Server yang baru direncanakan akan launching di Spring Security versi 5.1 dan dibundel dalam Spring Boot 2.1. Pada saat artikel ini ditulis, Spring Security 5.1 dan Spring Boot 2.1 belum dirilis.

Pada artikel kali ini, kita akan mengimplementasikan Client Application (atau Relying Party dalam istilah OpenID Connect) dengan fitur login dengan Google. Kita juga akan membuat tabel di aplikasi kita yang memuat setting permission. Kita akan mapping username dari Google dengan permission yang kita kelola di aplikasi kita sendiri.

Lanjut membaca ...


Deployment Microservice Kere Hore Bagian 6

Pada artikel terdahulu, kita menggunakan Nginx sebagai reverse proxy. Semua request diterima Nginx dalam bentuk terenkripsi (SSL/TLS), didekripsi, kemudian diteruskan ke masing-masing backend.

Sebetulnya, selain Nginx masih banyak alternatif lain yang bisa dipakai sebagai reverse proxy, diantaranya:

Selain reverse proxy biasa, jaman sekarang banyak juga yang menawarkan fitur-fitur lain seperti rate limiting, caching, logging, routing, authentication, dan sebagainya. Beberapa produk yang tersedia diantaranya:

Pada artikel ini, kita akan bahas alternatif tradisional dulu, yaitu HAProxy. Seringkali kita hanya membutuhkan solusi sederhana, ringan, dan cepat. Tidak perlu aksesoris macam-macam.

HAProxy adalah aplikasi yang mengkhususkan diri menjadi reverse proxy. Dia bukan webserver seperti Nginx atau Apache HTTPD. Dengan demikian, ukurannya lebih kecil dan ringan. Dia juga memiliki mode tcp atau Layer 4 buat aplikasi lain yang tidak menggunakan protokol http.

Kali ini, kita hanya akan menggunakan fitur berikut dari HAProxy:

  • Reverse Proxy
  • SSL Termination

Lanjut membaca ...


Deployment Microservice Kere Hore Bagian 5

Pada artikel yang lalu, kita sudah membahas tentang penggunaan Nginx sebagai Front Proxy, memasang aplikasi Java, dan aplikasi Node JS. Kali ini, kita akan instal aplikasi dengan bahasa pemrograman Ruby dan framework Ruby on Rails.

Lanjut membaca ...


Deployment Microservice Kere Hore Bagian 4

Pada artikel yang lalu, kita sudah membahas tentang penggunaan Nginx sebagai Front Proxy, memasang aplikasi Java, dan aplikasi Wordpress berbasis PHP. Kali ini kita akan lanjutkan memasang aplikasi berbasis NodeJS dengan framework ExpressJS.

Lanjut membaca ...


Deployment Microservice Kere Hore Bagian 3

Pada artikel yang lalu, kita sudah membahas tentang penggunaan Nginx sebagai Front Proxy, dan memasang aplikasi Java di belakang proxy tersebut. Kali ini kita akan memasang aplikasi PHP langsung di Nginx. Agar tidak membuang waktu membuat aplikasi, kita akan gunakan aplikasi yang sudah ada dan banyak digunakan orang, yaitu Wordpress. Aplikasi ini bisa diunduh di websitenya secara gratis. Petunjuk instalasi juga sudah disediakan di dokumentasinya. Tinggal kita ikuti saja.

Lanjut membaca ...