API7 Enterprise v3.2.15: Autentikasi Multi-Kredensial

Zhihuang Lin

Zhihuang Lin

September 18, 2024

Products

Seiring dengan semakin kompleksnya layanan API, metode kontrol akses tradisional yang hanya mengandalkan alamat IP atau header permintaan dasar sudah tidak lagi mencukupi. API7 Enterprise memperkenalkan konsep "Consumers", yang memungkinkan pengembang untuk mengikat konsumen ke rute atau layanan API tertentu dengan plugin autentikasi yang sama diaktifkan. Ketika seorang konsumen membuat permintaan, gateway API mengidentifikasi konsumen berdasarkan kredensial yang diberikan dalam permintaan dan menerapkan kebijakan kontrol akses yang sesuai sesuai dengan hubungan pengikatan.

API7 Enterprise v3.2.15 meningkatkan mekanisme autentikasi konsumen yang ada. Ini mengoptimalkan interaksi plugin yang umum digunakan, meningkatkan kontrol izin, dan mendukung beberapa kredensial autentikasi per plugin. Hal ini memungkinkan manajemen kredensial yang lebih fleksibel dan rotasi kredensial.

Optimasi Interaksi Plugin Autentikasi Konsumen

Anda dapat dengan mudah menambahkan beberapa kredensial autentikasi dalam satu plugin autentikasi. Konfigurasi telah ditingkatkan dari pengkodean ke operasi formulir yang intuitif, membuat proses konfigurasi lebih sederhana.

Tambah Kredensial

Saat ini, konsumen mendukung empat metode autentikasi berikut dengan beberapa kredensial.

Autentikasi Kunci

Autentikasi Kunci adalah metode autentikasi berbasis kunci. Konsumen perlu menyertakan kunci unik dalam permintaan mereka, yang dapat disertakan dalam parameter string kueri atau header HTTP. Saat mengonfigurasi permintaan, konsumen harus memastikan bahwa kunci tersebut dibawa dalam permintaan dengan benar.

Tambah Autentikasi Kunci

Dalam konfigurasi rute atau layanan, plugin Key Auth perlu diaktifkan dengan aturan yang sesuai untuk memvalidasi kunci dalam permintaan. Gateway memeriksa apakah permintaan mengandung kunci yang diharapkan dan apakah kunci tersebut sesuai dengan konfigurasi. Jika validasi kunci berhasil, permintaan diizinkan untuk mengakses layanan backend; jika gagal, permintaan ditolak.

Autentikasi Dasar

Autentikasi Dasar adalah metode berbasis nama pengguna dan kata sandi. Konsumen perlu menyertakan informasi autentikasi yang mengandung nama pengguna dan kata sandi dalam permintaan, biasanya dikodekan dalam header Authorization dari permintaan HTTP tetapi juga dapat diteruskan melalui parameter string kueri, meskipun tidak direkomendasikan karena potensi paparan informasi sensitif. Konsumen harus memastikan bahwa informasi autentikasi yang dikodekan disertakan dengan benar saat mengonfigurasi permintaan.

Tambah Kredensial Autentikasi Dasar

Dalam konfigurasi rute atau layanan, plugin Basic Auth perlu diaktifkan dengan aturan yang sesuai untuk memvalidasi informasi autentikasi. Gateway memeriksa apakah permintaan menyertakan header Authorization dan mengikuti format Autentikasi Dasar. Formatnya adalah Basic <encoded-value>, di mana <encoded-value> adalah hasil pengkodean Base64 dari nama pengguna dan kata sandi yang dipisahkan oleh titik dua. Gateway mendekode nilai ini dan membandingkan nama pengguna dan kata sandi yang didekode dengan informasi yang dikonfigurasi. Jika cocok, permintaan diizinkan untuk mengakses layanan backend; jika tidak, permintaan ditolak.

Perhatikan bahwa Autentikasi Dasar mengirimkan nama pengguna dan kata sandi dalam teks biasa, hanya dikodekan dalam Base64 (tidak dienkripsi), yang membuatnya tidak cocok untuk skenario keamanan tinggi.

Autentikasi JWT

Autentikasi JWT adalah metode berbasis JSON Web Tokens (JWT). Konsumen harus menyertakan token JWT yang valid dalam permintaan mereka, biasanya dalam header Authorization menggunakan format Bearer <token> tetapi juga dapat ditempatkan dalam parameter string kueri atau cookie sesuai kebutuhan. Konsumen harus memastikan kebenaran dan validitas token JWT saat mengonfigurasi permintaan.

Saat menambahkan kredensial JWT, Anda dapat mengonfigurasi elemen kunci dari pembuatan token JWT, termasuk Key (kunci publik atau pribadi) untuk penandatanganan dan verifikasi, Secret (kunci untuk enkripsi simetris), algoritma yang digunakan (misalnya, HMAC-SHA256 atau RSA-SHA256), dan waktu kedaluwarsa untuk menetapkan masa berlaku token. Hanya konsumen yang memegang token yang valid dan belum kedaluwarsa yang dapat berhasil mengakses layanan backend yang dilindungi.

Tambah Kredensial Autentikasi JWT

Autentikasi HMAC

Autentikasi HMAC adalah metode berbasis Hash-based Message Authentication Code (HMAC). Konsumen perlu menghasilkan nilai HMAC untuk permintaan, biasanya dihitung menggunakan kunci yang telah dibagikan sebelumnya dan bagian tertentu dari permintaan (misalnya, metode permintaan, URI, badan permintaan). Nilai HMAC ini dapat disertakan dalam parameter string kueri atau header HTTP.

Saat mengonfigurasi permintaan, konsumen harus menghasilkan dan menyertakan nilai HMAC dengan benar sesuai dengan algoritma dan format yang ditentukan. Secara khusus, konsumen menggunakan kunci yang diketahui dan informasi permintaan untuk menghasilkan HMAC menggunakan algoritma hashing (misalnya, SHA-256) dan menambahkannya ke permintaan.

Tambah Kredensial Autentikasi HMAC

Dalam konfigurasi rute atau layanan, plugin HMAC Auth perlu diaktifkan dengan aturan yang sesuai untuk memvalidasi nilai HMAC dalam permintaan. Gateway memeriksa apakah nilai HMAC ada dalam permintaan dan menghitung ulang HMAC menggunakan kunci yang telah dibagikan sebelumnya dan algoritma yang sama untuk memverifikasi validitasnya. Jika HMAC yang dihitung ulang cocok dengan nilai dalam permintaan, permintaan diizinkan untuk mengakses layanan backend.

Kebijakan Izin Konsumen yang Lebih Detail

Selain mengoptimalkan manajemen kredensial, kami telah lebih menyempurnakan manajemen izin konsumen. Anda sekarang dapat menentukan izin hingga tingkat individu konsumen, memungkinkan kontrol akses yang lebih detail. Izin baca dan tulis untuk kredensial autentikasi sekarang dikontrol secara terpisah, terpisah dari izin konsumen, memberikan fleksibilitas yang lebih besar.

Ringkasan

Versi terbaru dari API7 Enterprise memperkenalkan peningkatan besar dalam autentikasi konsumen dan manajemen izin. Ini mengoptimalkan interaksi plugin, memungkinkan manajemen kredensial independen, mendukung beberapa metode autentikasi, dan menyempurnakan strategi izin konsumen. Peningkatan ini meningkatkan fleksibilitas manajemen kredensial, keamanan sistem, dan pengalaman pengguna secara keseluruhan.

Pembaruan di masa depan mungkin akan memperkenalkan metode autentikasi tambahan dan lebih menyempurnakan manajemen kredensial, menawarkan fitur-fitur inovatif lebih lanjut dan pengalaman pengguna yang lebih baik.

Tags: