Pelajari tentang kasus penggunaan otorisasi API. Topik ini menjelaskan cara mengaktifkan otorisasi API, mengonfigurasi aturan otorisasi, mendefinisikan antarmuka authorizer, serta menerapkan aturan tersebut ke API Anda.
Pengenalan Fungsi
Fitur otorisasi API memungkinkan Anda menetapkan aturan otorisasi akses API umum pada Mobile Gateway Service (MGS):
Anda dapat membuat dan mengonfigurasi API authorizer (API A) di manajemen gateway, lalu mengaitkannya dengan API bisnis (API B) dalam konfigurasi API B.
Ketika klien mengirim permintaan ke API bisnis backend (API B), MGS mengekstrak parameter otorisasi dari header permintaan atau cookie berdasarkan konfigurasi otorisasi API. MGS kemudian menempatkan parameter tersebut ke dalam konteks dan memanggil API authorizer terkait (API A). Server untuk API A harus melakukan pemeriksaan izin bisnis menggunakan parameter dalam konteks tersebut.
Jika pemeriksaan berhasil, MGS menambahkan hasilnya—yang disebut principal—ke header permintaan dan meneruskan permintaan tersebut ke API bisnis backend (API B). Jika caching diaktifkan, MGS menyimpan principal tersebut dalam cache untuk meningkatkan kinerja otorisasi.

Skenario
Skenario satu
Seorang pelanggan memiliki session terdistribusi. Setelah pengguna login, ID session dihasilkan. Proses otorisasi sebagai berikut:
Pengguna A meminta login. Setelah login berhasil, ID session dan informasi session dihasilkan lalu disimpan ke cache terdistribusi, seperti
sessionId: {username:A, age:18, ...}. ID session tersebut kemudian dikirim ke klien.Pengguna A meminta API yang memerlukan otorisasi login. Gateway mengambil ID session dari header permintaan dan mengirimkannya ke sistem otorisasi. Sistem otorisasi menggunakan ID session tersebut untuk mengambil informasi pengguna dari cache terdistribusi dan mengembalikan
{username:A, age:18,...}ke gateway.Gateway memastikan bahwa login berhasil, menambahkan
{username:A, age:18,...}ke header permintaan, lalu meneruskan permintaan tersebut ke server bisnis backend.
Skenario dua
Skenario ini menjelaskan skema otorisasi sisi klien berbasis Hash-based Message Authentication Code (HMAC). Prosesnya sebagai berikut:
Setelah Pengguna A berhasil login, token dikirim ke klien, misalnya
token=hmac(username+password).Pengguna A meminta API yang memerlukan otorisasi login. Gateway mengambil token dari header dan mengirimkannya ke sistem otorisasi. Sistem otorisasi menghitung ulang HMAC tersebut. Jika token sesuai, sistem mengembalikan informasi pengguna, seperti
{username:A, age:18,...}, ke gateway.Gateway memastikan bahwa login berhasil, menambahkan
{username:A, age:18,...}ke header permintaan, lalu meneruskan permintaan tersebut ke server bisnis backend.
Prosedur
Konfigurasikan aturan otorisasi
Login ke Konsol mPaaS. Di panel navigasi sebelah kiri, pilih Background connection > Mobile Gateway Service.
Pilih tab Gateway Management. Di bawah API Authorization, klik Create authorization API. Atau, pada daftar aturan otorisasi yang sudah ada, temukan aturan yang ingin dimodifikasi lalu klik Details di kolom Actions. Halaman konfigurasi aturan otorisasi akan terbuka:
Authorization API name: Wajib diisi. Nama aturan otorisasi.
Authorization API: Wajib diisi. API ini digunakan untuk memverifikasi otorisasi permintaan.
Cache authorization result: Menunjukkan apakah hasil verifikasi otorisasi akan disimpan dalam cache.
Cache TTL: Masa berlaku cache untuk hasil verifikasi.
Identity source: Jika Anda mengklik Add source field, masukkan parameter permintaan yang digunakan untuk otorisasi dan identitas permintaan, yang terdiri dari bidang-bidang berikut:
Location: lokasi parameter, yaitu
headerataucookie.Field: nama parameter.
CatatanJika bidang identity source tidak ditemukan dalam permintaan API, validasi otorisasi akan gagal.
Definisikan antarmuka pemberi otorisasi
Jika antarmuka otorisasi yang disediakan oleh sistem backend bertipe HTTP, Anda harus mengonfigurasi API otorisasi untuk menggunakan metode POST.
Sebelum menambahkan relasi otorisasi, Anda harus mengembangkan Auth API di sistem bisnis Anda. Saat suatu API memerlukan validasi otorisasi, API tersebut akan memanggil Auth API untuk melakukan pemeriksaan. Permintaan dan respons Auth API harus mengikuti standar berikut:
AuthRequest
public class AuthRequest {
private Map<String,String> context;
}AuthResponse
public class AuthResponse {
private boolean success;
private Map<String,String> principal;
}Contoh Antarmuka
@PostMapping("/testAuth")
public AuthResponse testAuth(@RequestBody AuthRequest authRequest) {
String sid = authRequest.getContext().get("sid");
Map<String, String> principal = new HashMap<>();
principal.put("uid", sid + "_uid");
AuthResponse authResponse = new AuthResponse();
authResponse.setSuccess(true);
authResponse.setPrincipal(principal);
return authResponse;
}Jika bidang
successdalam respons otorisasi bernilaitrue, gateway menyimpan informasiprincipaldalam cache berdasarkan kebijakan cache. Gateway kemudian menambahkan informasiprincipalke header permintaan dan meneruskannya ke sistem bisnis backend. Jika tidak ada principal, Anda tetap harus mengirimkan Map kosong.Jika bidang
successdalam respons otorisasi bernilaifalse, gateway mengembalikan kode kesalahan 2000. Klien kemudian harus melakukan tindakan yang sesuai, seperti menampilkan kotak dialog login.
Gunakan aturan otorisasi
Setelah mengonfigurasi aturan otorisasi, buka halaman konfigurasi API. Di bawah Advanced Settings > API Authorization, pilih aturan tersebut untuk mengaktifkan otorisasi pada API.
Untuk menggunakan otorisasi API, pastikan fitur API Authorization telah diaktifkan pada halaman Manage gateway. Untuk mengaktifkan fitur tersebut:
Login ke Konsol mPaaS. Di panel navigasi kiri, klik menu Mobile Gateway Service.
Pada tab Manage gateway, pastikan tombol API Authorization dalam keadaan aktif.
Sebelum API mengirim permintaan ke sistem backend, API tersebut melakukan pemeriksaan otorisasi. Jika pemeriksaan berhasil, gateway menerima permintaan dan meneruskannya ke sistem backend. Jika tidak, gateway menolak permintaan tersebut, dan pemanggil menerima respons kesalahan otorisasi gagal.