Di gateway cloud-native Microservices Engine (MSE), Anda dapat mengonfigurasi aturan otentikasi untuk rute agar hanya memperbolehkan akses dari konsumen yang telah terotentikasi. Topik ini menjelaskan cara mengonfigurasi otorisasi konsumen.
Informasi latar belakang
Otentikasi global cocok untuk skenario To Consumer (ToC), seperti otentikasi logon terpusat. Otentikasi rute dan otorisasi konsumen cocok untuk skenario To Business (ToB), seperti pemberian izin pada operasi API kepada mitra.
Item | Otentikasi global | Otentikasi rute dan otorisasi konsumen |
Skema | Skema ToC, seperti otentikasi logon terpusat. | Skema ToB, seperti pemberian izin pada operasi API kepada mitra. |
Perbedaan utama | Otorisasi juga diaktifkan saat Anda mengaktifkan otentikasi. | Anda harus mengonfigurasi pengaturan otorisasi setelah mengaktifkan otentikasi. |
Titik masuk | Security Management > Global Authentication |
|
Konfigurasi otentikasi berdasarkan JSON Web Token (JWT) |
|
|
Konfigurasi otorisasi | Saat membuat aturan otorisasi, pilih Daftar Putih atau Daftar Hitam dan tentukan bidang Domain Name dan Path.
|
|
Buat konsumen
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
Di panel navigasi sisi kiri, pilih Cloud-native Gateway > Gateways.
Di halaman Gateways, klik nama gateway.
Di panel navigasi sisi kiri, pilih Security Management > Consumer Authentication
Klik Create Consumer.
Konfigurasikan parameter dan klik OK.

Tabel berikut menjelaskan parameter.
Parameter
Deskripsi
Consumer Name
Nama konsumen.
Consumer Description
Deskripsi konsumen.
Authentication Type
Metode otentikasi yang didukung oleh konsumen.
Key Type
Symmetric Key: JWKS default yang bervariasi berdasarkan konsumen dibuat. JWKS default berisi kunci yang digunakan untuk mengenkripsi atau mendekripsi token.
Asymmetric Key: Anda harus memasukkan konfigurasi JWKS lengkap. Token dienkripsi menggunakan kunci privat. Gateway melakukan dekripsi berdasarkan kunci publik dalam JWKS.
JWKS
Masukkan konfigurasi JWKS. Untuk informasi lebih lanjut tentang spesifikasi JWKS, lihat JSON Web Key (JWK).
JWT Token
Konfigurasikan token JWT.
Type: tipe token. Nilai default adalah HEADER.
Key: nama token.
Prefix: awalan token. Konfigurasikan parameter yang diperlukan untuk memvalidasi token. Secara default, token berisi awalan Bearer dan disimpan di Authorization header. Contoh: Authorization: Bearer <token>.
Enable Passthrough: Jika Anda memilih opsi ini, token akan disalurkan ke layanan backend.
Consumer Identity in JWT Payload
Kunci dan nilai dalam payload JWT yang digunakan untuk mengidentifikasi konsumen. Secara default, kuncinya adalah uid, dan nilainya adalah string acak. Anda dapat mengubah nilainya berdasarkan kebutuhan bisnis Anda.
Kode berikut adalah payload dalam token JWT jika konsumen dibuat berdasarkan konfigurasi pada gambar sebelumnya.
{ "uid": "11215ac069234abcb8944232b79ae711" }
Metode pembuatan token
Berikut ini adalah contoh pembuatan token dalam Java. Dalam bahasa pemrograman lain, Anda dapat menggunakan alat terkait untuk menghasilkan pasangan kunci.
Buat proyek Maven dan tambahkan dependensi berikut ke proyek:
<dependency>
<groupId>org.bitbucket.b_c</groupId>
<artifactId>jose4j</artifactId>
<version>0.7.0</version>
</dependency>Gunakan kunci simetris default untuk menghasilkan token
Konfigurasi dalam kode:
Konfigurasi
privateKeyJsonmenentukan JWKS yang digunakan saat membuat konsumen. Anda dapat mencatat JWKS saat membuat konsumen atau mendapatkan JWKS dari halaman konfigurasi dasar konsumen setelah membuat konsumen.
Konfigurasikan ID konsumen. Konfigurasi
claims.setClaim("uid", "11215ac069234abcb8944232b79ae711")menentukan ID konsumen. Ini dihasilkan secara otomatis oleh konsol saat Anda membuat konsumen. Anda dapat mengubah ID konsumen berdasarkan logika.
Anda juga bisa mendapatkan ID konsumen di halaman konfigurasi dasar konsumen setelah membuat konsumen.

Konfigurasikan algoritma enkripsi. Konfigurasi
jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256)menentukan algoritma enkripsi, yang harus sesuai dengan JWKS.CatatanAlgoritma enkripsi berikut didukung: ES256, ES384, ES512, RS256, RS384, RS512, PS256, PS384, PS512, HS256, HS384, HS512, dan EdDSA.

Saat menggunakan enkripsi simetris, Anda harus mendekode "k".
jws.setKey(new HmacKey(Base64.decode(JsonUtil.parseJson(privateKeyJson).get("k").toString())));Konfigurasikan waktu kedaluwarsa. Waktu kedaluwarsa harus kurang dari tujuh hari. Setelah waktu kedaluwarsa tercapai, kami sarankan Anda menghasilkan token baru untuk memastikan keamanan.
... NumericDate date = NumericDate.now(); date.addSeconds(120*60); claims.setExpirationTime(date); claims.setNotBeforeMinutesInThePast(1); ...Anda dapat menambahkan parameter kustom ke JWKS
PAYLOADberdasarkan kebutuhan bisnis Anda.
Gunakan kunci asimetris untuk menghasilkan token
Konfigurasi dalam kode:
Konfigurasikan parameter
privateKeyJson, ID konsumen, dan waktu kedaluwarsa sama seperti saat Anda menggunakan algoritma enkripsi simetris.Konfigurasi
jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.RSA_USING_SHA256)menentukan algoritma enkripsi. Algoritma enkripsi harus sesuai dengan JWKS.Jika algoritma enkripsi asimetris digunakan, kunci privat diperlukan untuk enkripsi.
... jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.RSA_USING_SHA256); PrivateKey privateKey = new RsaJsonWebKey(JsonUtil.parseJson(privateKeyJson)).getPrivateKey(); jws.setKey(privateKey); ...
Anda dapat menambahkan parameter kustom ke JWKS
PAYLOADberdasarkan kebutuhan bisnis Anda.
Aktifkan otentikasi rute
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
Di panel navigasi sisi kiri, pilih Cloud-native Gateway > Gateways.
Di halaman Gateways, klik ID gateway.
Di panel navigasi sisi kiri, klik Routes. Lalu, klik tab Routes.
Temukan rute yang diinginkan, dan klik Policies di kolom Actions.
Di halaman Policies, klik tab Authentication. Lalu, konfigurasikan parameter, dan klik Save.
Parameter
Deskripsi
Authentication Type
Metode yang digunakan untuk mengotentikasi konsumen sebelum konsumen dapat mengakses rute.
Enabled
Menentukan apakah akan mengaktifkan otentikasi. Setelah Anda menyalakan sakelar, otentikasi mulai berlaku.
Otorisasi konsumen untuk mengakses rute
Masuk ke Konsol MSE. Di bilah navigasi atas, pilih wilayah.
Di panel navigasi sisi kiri, pilih Cloud-native Gateway > Gateways.
Di halaman Gateways, klik ID gateway.
Di panel navigasi sisi kiri, pilih Security Management > Consumer Authentication
Temukan konsumen yang diinginkan dan klik Authorization di kolom Actions.
Di tab Consumer Authorization, klik Associate Route, pilih rute tempat Anda ingin konsumen memiliki izin akses, lalu klik OK.