All Products
Search
Document Center

API Gateway:Basic-auth

Last Updated:Sep 10, 2026

Plug-in basic-auth melakukan autentikasi dan otorisasi permintaan berdasarkan standar HTTP Basic Authentication.

Jenis plug-in

Autentikasi dan otorisasi.

Bidang

Konfigurasi autentikasi

Bidang

Jenis data

Wajib

Nilai default

Deskripsi

consumers

array of object

Ya

-

Pemanggil layanan, digunakan untuk mengautentikasi permintaan.

global_auth

array of string

Tidak (Wajib hanya untuk konfigurasi tingkat instans)

-

Hanya dapat dikonfigurasi pada tingkat instans. Jika diatur ke true, autentikasi berlaku secara global. Jika diatur ke false, autentikasi hanya berlaku untuk nama domain dan rute yang telah dikonfigurasi. Jika tidak dikonfigurasi, autentikasi berlaku secara global hanya jika tidak ada nama domain atau rute yang dikonfigurasi, demi kompatibilitas mundur.

Bidang dalam consumers:

Bidang

Jenis data

Wajib

Nilai default

Deskripsi

credential

string

Ya

-

Kredensial akses konsumen.

name

string

Ya

-

Nama konsumen.

(Opsional) Konfigurasi otorisasi

Bidang

Jenis data

Wajib

Nilai default

Deskripsi

allow

array of string

Tidak (Wajib untuk konfigurasi non-tingkat-instans)

-

Hanya dapat dikonfigurasi pada tingkat rute atau nama domain. Menentukan konsumen mana yang dapat mengakses permintaan yang sesuai dengan kondisi yang dikonfigurasi.

Penting
  • Konfigurasi otorisasi dan autentikasi tidak dapat diterapkan dalam aturan yang sama.

  • Untuk permintaan yang telah diautentikasi, bidang X-Mse-Consumer ditambahkan ke header permintaan untuk mengidentifikasi pemanggil.

Contoh

Konfigurasi autentikasi secara global dan konfigurasi otorisasi untuk rute

Contoh ini mengaktifkan autentikasi dan otorisasi dasar untuk rute atau domain tertentu dari sebuah gateway.

Catatan
  • Username dan password dalam kredensial dipisahkan oleh tanda titik dua (:).

  • Nilai credential harus unik.

Terapkan konfigurasi plug-in berikut pada tingkat instans:

global_auth: false
consumers:
- credential: 'admin:123456'
  name: consumer1
- credential: 'guest:abc'
  name: consumer2

Terapkan konfigurasi plug-in berikut ke rute route-a dan route-b:

allow:
- consumer1

Terapkan konfigurasi plug-in berikut ke nama domain *.example.com dan test.com:

allow:
- consumer2
Catatan
  • Dalam contoh ini, rute route-a dan route-b adalah rute yang ditentukan saat pembuatan rute gateway. Jika permintaan klien sesuai dengan salah satu rute tersebut, pemanggil yang namanya adalah consumer1 diizinkan mengakses gateway. Pemanggil lain tidak diizinkan mengakses gateway.

  • Dalam contoh ini, nama domain *.example.com dan test.com digunakan untuk mencocokkan nama domain dalam permintaan. Jika permintaan klien sesuai dengan salah satu nama domain tersebut, pemanggil yang namanya adalah consumer2 diizinkan mengakses gateway. Pemanggil lain tidak diizinkan mengakses gateway.

Konfigurasi ini mengizinkan permintaan berikut:

Username dan password ditentukan dalam permintaan.

# Dalam contoh ini, route-a dalam permintaan dicocokkan.
# Gunakan parameter -u dalam perintah curl untuk menentukan username dan password.
curl -u admin:123456  http://xxx.hello.com/test
# Anda juga dapat langsung menentukan header permintaan Authorization yang berisi username dan password dalam bentuk base64-encoded.
curl -H 'Authorization: Basic YWRtaW46MTIzNDU2'  http://xxx.hello.com/test

Setelah autentikasi berhasil, bidang X-Mse-Consumer ditambahkan ke header permintaan untuk mengidentifikasi pemanggil. Dalam contoh ini, nilainya adalah consumer1.

Konfigurasi ini menolak permintaan berikut:

  • Tidak ada kredensial yang disediakan dalam permintaan, dan kode status HTTP 401 dikembalikan.

    curl  http://xxx.hello.com/test
  • Username atau password tidak valid, dan kode status HTTP 401 dikembalikan.

    curl -u admin:abc  http://xxx.hello.com/test
  • Pemanggil yang dicocokkan oleh kredensial tidak memiliki izin akses, dan kode status HTTP 403 dikembalikan.

    # Konsumen bernama consumer2 tidak ada dalam daftar allow route-a.
    curl -u guest:abc  http://xxx.hello.com/test

Aktifkan autentikasi untuk gateway

Terapkan konfigurasi berikut untuk mengaktifkan autentikasi dasar tingkat instans. Semua permintaan kemudian harus diautentikasi.

global_auth: true
consumers:
- credential: 'admin:123456'
  name: consumer1
- credential: 'guest:abc'
  name: consumer2

Kode error

Kode status HTTP

Pesan error

Alasan

401

Request denied by Basic Auth check. No Basic Authentication information found.

Tidak ada kredensial yang disediakan dalam permintaan.

401

Request denied by Basic Auth check. Invalid username and/or password.

Kredensial dalam permintaan tidak valid.

403

Request denied by Basic Auth check. Unauthorized consumer.

Pemanggil tidak memiliki izin akses.