Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penyedia Unauthenticated memberi tahu Pembuat API Data (DAB) untuk tidak memeriksa atau memvalidasi JSON Web Token (JWT). Setiap permintaan berjalan sebagai anonymous peran. Tidak ada pengecualian di dalam DAB.
Nota
Fungsionalitas Pembuat API Data 2.0 yang dijelaskan di bagian ini saat ini dalam pratinjau dan mungkin berubah sebelum ketersediaan umum. Untuk informasi selengkapnya, lihat Apa yang baru dalam versi 2.0.
Gunakan penyedia ini ketika Anda ingin DAB memperlakukan setiap permintaan sebagai anonymous, bahkan jika layanan lain di depan DAB melakukan autentikasi atau menerapkan kebijakan akses.
Penting
Penyedia Unauthenticated tidak pernah mengubah identitas upstream menjadi identitas DAB. Jika Anda memerlukan DAB untuk memvalidasi token, mengaktifkan authenticated peran, menggunakan peran kustom, atau meneruskan klaim pengguna ke kebijakan hilir, gunakan penyedia validasi seperti EntraId, , Customatau AppService.
Proses autentikasi
Dengan penyedia Unauthenticated, DAB melompati validasi token sepenuhnya dan mengevaluasi izin sebagai anonymous.
| Fase | Apa yang terjadi |
|---|---|
| Permintaan klien | Klien mengirimkan permintaan ke DAB, baik secara langsung atau melalui layanan lain |
| Kontrol hulu | Front end, gateway, atau proksi dapat mengautentikasi pemanggil atau menerapkan akses kasar sebelum meneruskan permintaan |
| Meneruskan permintaan | Permintaan mencapai DAB |
| Pemrosesan DAB | DAB tidak memvalidasi JWT dan selalu memperlakukan permintaan sebagai anonymous |
| Otorisasi | DAB mengevaluasi izin entitas untuk peran tersebut anonymous |
Kapan menggunakan penyedia ini
Gunakan Unauthenticated dalam skenario ini:
| Skenario | Cocok? | Mengapa |
|---|---|---|
| API Management atau gateway mengautentikasi pengguna terlebih dahulu | Yes | Ujung depan dapat membatasi akses, sementara DAB masih hanya mengotorisasi permintaan untuk peran tersebut anonymous |
| Layanan khusus internal di balik batas jaringan tertutup | Yes | Akses jaringan dikendalikan di luar DAB, dan DAB dapat tetap dalam mode anonymous saja. |
| Penyiapan lokal cepat tanpa mengonfigurasi validasi JWT | Yes | Cara paling sederhana untuk memulai |
| DAB diekspos langsung ke browser atau klien publik | No | DAB tidak memvalidasi token identitas |
Anda memerlukan authenticated atau aktivasi peran kustom di dalam DAB |
No | Hanya anonymous aktif dengan penyedia ini |
Referensi cepat
| Setting | Nilai |
|---|---|
| Provider | Unauthenticated |
| Token diperlukan | No |
| Peran DAB aktif | anonymous |
| Mendukung validasi JWT | No |
authenticated Mendukung peran |
No |
| Mendukung role kustom | No |
Langkah 1: Mengonfigurasi penyedia
Atur penyedia autentikasi ke Unauthenticated.
CLI
Konfigurasi yang dihasilkan
{
"runtime": {
"host": {
"authentication": {
"provider": "Unauthenticated"
}
}
}
}
Nota
Penyedia Unauthenticated adalah default untuk konfigurasi baru di DAB 2.0. Menjalankan dab init membuat konfigurasi kerja tanpa pengaturan JWT apa pun.
Langkah 2: Mengonfigurasi izin entitas untuk anonymous
Karena DAB memperlakukan semua permintaan sebagai anonymous, entitas Anda harus memberikan akses ke anonymous peran untuk operasi apa pun yang ingin Anda izinkan.
Konfigurasi contoh
{
"entities": {
"Book": {
"source": "dbo.Books",
"permissions": [
{
"role": "anonymous",
"actions": ["read"]
}
]
}
}
}
Jika entitas memberikan akses hanya ke authenticated atau peran kustom, permintaan gagal karena peran tersebut tidak pernah diaktifkan saat Unauthenticated dikonfigurasi.
Penting
Saat Unauthenticated aktif, authenticated dan peran kustom yang ditentukan dalam izin entitas tidak pernah diaktifkan. Jika konfigurasi Anda berisi peran tersebut, DAB akan mengeluarkan peringatan saat startup.
Langkah 3: Secara opsional menempatkan layanan lain di depan DAB
Layanan lain masih dapat mengautentikasi penelepon atau menerapkan aturan akses kasar sebelum permintaan mencapai DAB. Itu tidak mengubah perilaku DAB:
- Autentikasikan pemanggil di antarmuka depan, gateway, atau proksi.
- Terapkan kebijakan akses berbutir kasar pada lokasi tersebut.
- Teruskan permintaan yang disetujui ke DAB.
- Gunakan izin entitas DAB untuk mengontrol apa yang dapat dilakukan peran
anonymous.
Pola ini berfungsi dengan baik ketika platform sekitar mengontrol siapa yang dapat mencapai DAB, sementara DAB sengaja tetap terbatas pada anonymous saja.
Apa yang tidak dilakukan penyedia ini
Penyedia Unauthenticated tidak melakukan:
- memvalidasi token pembawa
- aktifkan
authenticatedperan - mengaktifkan peran kustom dari klaim
- membuat klaim dapat diakses untuk kebijakan basis data
- melakukan otorisasi khusus pengguna di dalam DAB
Jika Anda memerlukan kemampuan tersebut, gunakan penyedia yang memasok identitas ke DAB.
Contoh konfigurasi lengkap
{
"$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json",
"data-source": {
"database-type": "mssql",
"connection-string": "@env('SQL_CONNECTION_STRING')"
},
"runtime": {
"host": {
"authentication": {
"provider": "Unauthenticated"
}
}
},
"entities": {
"Book": {
"source": "dbo.Books",
"permissions": [
{
"role": "anonymous",
"actions": ["read"]
}
]
}
}
}