FYI
- Saya sedang membuat serial untuk pembelajaran KONG pada blog ini.
- Kita menggunakan KONG Community Edition.
- Untuk mempermudah praktek, kita akan menggunakan KONGA
Serial
- Instalasi Kong Api Gateway & KONGA dengan Docker Compose
- Pembahasan Services dan Routes pada Kong Api Gateway
- Implementasi JWT Pada KONG <– Kita disini
Intro
Kita akan melanjutkan pembahasan KONG dari yang kemarin, kemarin maksud saya 2 bulan yang lalu wkwk. Jadi pada pembahasan sebelumnya kita telah mengetahui tentang Service dan Routes. Pada pembahasan kali ini pahami dulu yang namanya Consumer dan Plugins.
- Plugins adalah tools yang disediakan atau bisa dibuat sendiri, untuk mempermudah user dalam mengimplementasi fungsionalitas yang diinginkan. Misal disini kita akan menggunakan plugin JWT dalam praktek kali ini.
- Consumer berperan sebagai pemegang kunci autentikasi. Jadi misal kita punya plugin autentikasi (seperti JWT, Key Auth, dll) yang terpasang pada service/route, plugin autentikasi disini bisa diibaratkan sebagai lubang kunci dan Consumer adalah sang kunci untuk mengakses API yang memiliki autentikasi. CMIIW.
Pembahasan
Setelah mengerti tentang Plugin dan Consumer, kita akan lanjut untuk mengimplementasikan autentikasi JWT pada API kita. Karena sebelumnya kita telah membahas tentang Service dan Route, kita akan membahasnya sedikit saja disini.
Jadi pertama, buat service dan routenya terlebih dahulu.
Selanjutnya yaitu mengaktifkan Plugin JWT. Kita bisa mengaktifkannya secara:
- Scoped: terpusat pada salah satu service atau route
- Global: plugin akan diaktifkan pada semua service dan route
Namun disini, kita akan memasangnya secara Scoped yaitu pada Service. Masuk ke Service > Plugins > Add Plugin. Lalu pilih JWT.
Pada Plugin ini yang wajib kita isi yaitu:
- consumer (nope): tidak boleh diisi, atau KONGA akan menampilkan pesan error. Ini dikarenakan plugin JWT harus dapan digunakan oleh semua Consumer.
- key claim name (optional): default yaitu iss. Disini saya mengubahnya menjadi key.
- header names (wajib): isi dengan value authorization.
Jika sudah klik Submit Changes. Bisa dilihat bahwa plugin JWT sudah ditambahkan.
Selanjutnya, kita akan membuat Consumer. Masuk ke menu Consumers > Create Consumer. Buat username dan custom_id sesuai selera.
Setelah consumer dibuat, masuk ke Consumer > Credentials > JWT. Lalu Create JWT.
Isi key dan secret sesuai dengan selera kalian. Lalu submit.
Bisa dilihat bahwa Credential telah dibuat.
Testing
Berikutnya yaitu generate Bearer Token yang akan digunakan untuk autentikasi API. Sebagai contoh, kita akan menggunakan https://jwt.io. Masukkan key pada payload dan secret pada signature. Copy token yang ada pada sebelah kiri.
Setelah Token digenerate, kita akan melakukan testing dengan menembak API. Disini saya menggunakan Insomnia. Tentu saja kalian bisa menggunakan tool sejenis seperti cURL, http, Postman, dll. Lalu copy token tersebut dan kita akan menempelkannya sebagai Bearer Token.
Skenario I: Valid Token
Skenario II: Invalid Token
Skenario III: Tanpa Token
Serial
- Instalasi Kong Api Gateway & KONGA dengan Docker Compose
- Pembahasan Services dan Routes pada Kong Api Gateway
- Implementasi JWT Pada KONG <– Kita disini
Referensi
- https://konghq.com/blog/jwt-kong-gateway
- Pengalaman pribadi
Penutup
Kurang lebih seperti itu cara menggunakan plugin JWT pada KONG. Jika ada pertanyaan silakan bertanya pada kolom komentar. Sekian dan Terimakasih…