All Products
Search
Document Center

API Gateway:basic-auth

Last Updated:Jun 28, 2025

Plug-in basic-auth digunakan untuk otentikasi berdasarkan spesifikasi otentikasi dasar HTTP. Topik ini menjelaskan cara mengonfigurasi plug-in basic-auth.

Tipe Plug-in

Plug-in untuk otentikasi dan otorisasi.

Bidang

Konfigurasi Otentikasi

Bidang

Tipe data

Diperlukan

Nilai default

Deskripsi

konsumen

array of object

Ya

-

Pemanggil layanan. Bidang ini digunakan untuk mengotentikasi permintaan.

global_auth

array of string

Tidak (Diperlukan hanya untuk konfigurasi tingkat instance)

-

Bidang ini hanya dapat dikonfigurasi pada tingkat instance. Jika bidang ini disetel ke true, mekanisme otentikasi secara global berlaku. Jika bidang ini disetel ke false, mekanisme otentikasi hanya berlaku untuk nama domain dan rute yang telah dikonfigurasi. Jika bidang ini tidak dikonfigurasi, mekanisme otentikasi secara global hanya berlaku ketika tidak ada nama domain dan rute yang dikonfigurasi. Ini mempertimbangkan kebiasaan pengguna lama.

Tabel berikut menjelaskan bidang dalam konsumen.

Bidang

Tipe data

Diperlukan

Nilai default

Deskripsi

kredensial

string

Ya

-

Kredensial akses konsumen.

nama

string

Ya

-

Nama konsumen.

(Opsional) Konfigurasi Otorisasi

Bidang

Tipe data

Diperlukan

Nilai default

Deskripsi

allow

array of string

Tidak (Diperlukan untuk konfigurasi non-tingkat instance)

-

Anda hanya dapat mengonfigurasi bidang ini pada granularitas halus seperti rute atau nama domain. Untuk permintaan yang memenuhi kondisi pencocokan, Anda dapat mengonfigurasi konsumen yang diizinkan untuk akses. Ini mengimplementasikan kontrol izin granularitas halus.

Penting
  • Konfigurasi otorisasi dan konfigurasi otentikasi tidak dapat berkoeksistensi dalam aturan.

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

Contoh

Konfigurasikan otentikasi secara global dan konfigurasikan otorisasi untuk rute

Berikut adalah contoh tentang cara mengaktifkan otentikasi dasar dan otorisasi untuk rute atau domain tertentu dari gateway.

Catatan
  • Nama pengguna dan kata sandi dalam informasi kredensial dipisahkan oleh titik dua (:).

  • Konfigurasi item kredensial harus unik.

Terapkan konfigurasi plug-in berikut pada tingkat instance:

global_auth: false
konsumen:
- kredensial: 'admin:123456'
  nama: consumer1
- kredensial: 'guest:abc'
  nama: 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 cocok dengan salah satu rute, pemanggil yang memiliki nama sebagai consumer1 diizinkan untuk mengakses gateway. Pemanggil lainnya tidak diizinkan untuk mengakses gateway.

  • Dalam contoh ini, nama domain *.example.com dan test.com digunakan untuk mencocokkan nama domain dalam permintaan. Jika permintaan klien cocok dengan salah satu nama domain, pemanggil yang memiliki nama sebagai consumer2 diizinkan untuk mengakses gateway. Pemanggil lainnya tidak diizinkan untuk mengakses gateway.

Konfigurasi sebelumnya mengizinkan akses untuk permintaan berikut:

Nama pengguna dan kata sandi ditentukan dalam permintaan.

# Dalam contoh ini, route-a dalam permintaan cocok.
# Gunakan parameter -u dalam perintah curl untuk menentukan nama pengguna dan kata sandi.
curl -u admin:123456  http://xxx.hello.com/test
# Anda juga dapat langsung menentukan header permintaan Authorization di mana nama pengguna dan kata sandi dienkripsi base64.
curl -H 'Authorization: Basic YWRtaW46MTIzNDU2'  http://xxx.hello.com/test

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

Konfigurasi sebelumnya menolak akses untuk permintaan berikut:

  • Nama pengguna dan kata sandi tidak ditentukan dalam permintaan, dan kode status HTTP 401 dikembalikan.

    curl  http://xxx.hello.com/test
  • Nama pengguna atau kata sandi tidak valid dalam permintaan, dan kode status HTTP 401 dikembalikan.

    curl -u admin:abc  http://xxx.hello.com/test
  • Pemanggil yang cocok dengan nama pengguna dan kata sandi dalam permintaan tidak memiliki izin akses, dan kode status HTTP 403 dikembalikan.

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

Aktifkan otentikasi untuk gateway

Setelah Anda menerapkan konfigurasi berikut ke gateway, otentikasi dasar diaktifkan pada tingkat instance dan semua permintaan harus diautentikasi untuk mengakses gateway.

global_auth: true
konsumen:
- kredensial: 'admin:123456'
  nama: consumer1
- kredensial: 'guest:abc'
  nama: consumer2

Kode kesalahan

Kode status HTTP

Pesan kesalahan

Alasan

401

Permintaan ditolak oleh pemeriksaan Basic Auth. Tidak ditemukan informasi Otentikasi Dasar.

Kredensial tidak ditentukan dalam permintaan.

401

Permintaan ditolak oleh pemeriksaan Basic Auth. Nama pengguna dan/atau kata sandi tidak valid.

Kredensial permintaan tidak valid.

403

Permintaan ditolak oleh pemeriksaan Basic Auth. Konsumen tidak sah.

Pemanggil permintaan tidak memiliki izin akses.