BeAT: A REST API for User Management
BeAT adalah sebuat REST API yang didasarkan pada Keycloak yang digunakan untuk aplikasi microservice di internal Instansi XYZ.
Instansi XYZ memiliki sebuah aplikasi yang digunakan untuk mendukung proses bisnis administrasi pada XYZ seperti penjadwalan kegiatan, akses persuratan dan lainnya. Aplikasi ini menggunakan arsitektur microservices yang terdiri dari berbagai servis-servis layanan XYZ. Terdapat proses otentikasi pengguna pada setiap akses terhadap servis layanan aplikasi, Oleh karena itu, seluruh otentikasi pengguna tersebut terpusat melalui Keycloak XYZ.
Pada penelitian ini akan melakukan implementasi aplikasi REST API Management User dengan menggunakan Keycloak pada Microservices Web Aplikasi Internal Instansi XYZ yaitu BeOffice untuk memudahkan pengelolaan pengguna. Aplikasi ini menerapkan autentikasi JSON Web Token dengan algoritma RSA-256 pada setiap penggunaan aplikasi REST API Keycloak XYZ. Fitur-fitur aplikasi REST API Keycloak XYZ yang dikembangkan disesuaikan dengan kebutuhan dan proses bisnis dari aplikasi XYZ, dan juga dalam mengembangkan aplikasi ini menggunakan metode pengembangan SCRUM yang dibagi menjadi tiga tahap sprint yaitu: tahap perancangan yang berupa desain aplikasi dan kebutuhan user, tahap pembuatan yang berupa integrasi REST API manajemen user dengan Keycloak XYZ dan tahap pengujian yang menguji fitur aplikasi untuk mengelola akun dan akses pengguna aplikasi BeOffice. Dari hasil penelitian ini dapat disimpulkan bahwa pengembangan aplikasi REST API Keycloak XYZ telah dibuat sesuai dengan kebutuhan proses bisnis aplikasi Instansi XYZ yakni pada aplikasi BeOffice serta telah memenuhi faktor keamanan yang dibutuhkan.
Judul penelitian
Implementasi Aplikasi REST API Management User menggunakan Keycloak pada Microservices Web Aplikasi Internal Instansi XYZ.
Implementasi
Pada penelitian ini yang menjadi obyek penelitian adalah aplikasi internal microservices web XYZ yang menggunakan Keycloak untuk manajemen akses penggunanya. Sehingga dapat dihasilkan aplikasi Manajemen User yang memanfaatkan REST API Keycloak XYZ untuk mengelola user terhadap akses layanan XYZ. Aplikasi dikembangkan dengan metode pengembangan perangkat lunak SCRUM.
Berdasarkan hasil wawancara dengan pengembang aplikasi microservices web XYZ (BeOffice) diketahui bahwa dibutuhkannya fitur-fitur pengelolaan pengguna dan akses pengguna dari BeOffice dengan memanfaatkan framework Keycloak. Kebutuhan fungsional dan non fungsional pada aplikasi Manajemen User dengan REST API Keycloak XYZ akan diterapkan pada BeOffice untuk mendukung proses bisnis administrasi XYZ didapatkan sesuai dari kebutuhan lokus. Desain gambaran mengenai hubungan antar entitas dengan aplikasi REST API Keycloak XYZ yang akan dibuat, secara umum ditunjukkan pada gambar di bawah ini.
Dari gambar di atas dapat dilihat bahwa proses dimulai ketika pengguna aplikasi BeOffice melakukan proses login, setelah sesuai akan meminta token pengguna yang berupa token JWT melalui REST API Management User XYZ ke Keycloak XYZ. Selanjutnya akan diperoleh nilai token yang digunakan pada aplikasi BeOffice untuk tampilan frontend aplikasi yang berupa informasi akun yang ditampilkan ke pengguna. Ketika proses login telah sesuai, maka pengguna di-redirect menuju BeOffice dan dapat mengakses fitur pada aplikasi tersebut. Dalam mengakses fitur dari BeOffice (servis) akan menggunakan token JWT yang dimiliki tiap pengguna, servis akan melakukan validasi token JWT berupa valid atau kedaluarsa (tidak valid). Proses validasi tersebut servis akan melakukan verifikasi ke Keycloak XYZ. Jika sesuai maka pengguna dapat mengakses servis yang ada.
Berikut ini adalah use case diagram aplikasi.
Untuk menggambarkan skema implementasi aplikasi Manajemen User Keycloak XYZ pada aplikasi Microservices Web XYZ, digunakan deployment diagram yang ditunjukkan pada gambar di bawah ini.
Pengujian yang dilakukan meliputi pengujian fungsional dan pengujian keamanan. Pengujian keamanan dilakukan dengan metode vulnerability assesment dengan melakukan scanning menggunakan aplikasi pihak ketiga yaitu Burpsuite, dan aplikasi dinyatakan lulus uji
Tangkapan Layar
-
Endpoint fungsi get token by user credential
-
Endpoint fungsi Validate Token dari Client Secret
-
Endpoint get all users
Peneliti
- Amerta Bian Kretarta
Supervisor
- Herman Kabetta
- I Komang Setia Buana
- Hermawan Setiawan
Publikasi
A. B. Kretarta and H. Kabetta, "Secure User Management Gateway for Microservices Architecture APIs Using Keycloak on XYZ," 2022 5th International Seminar on Research of Information Technology and Intelligent Systems (ISRITI), Yogyakarta, Indonesia, 2022, pp. 7-13, doi: 10.1109/ISRITI56927.2022.10052901.