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.
Fabric Apps menyertakan layanan autentikasi bawaan yang memasukkan pengguna, mengelola sesi mereka, dan melampirkan identitas mereka ke setiap panggilan data dan penyimpanan yang dilakukan aplikasi Anda. Artikel ini menjelaskan konsep yang perlu Anda pahami sebelum mengonfigurasi autentikasi untuk proyek Anda.
Untuk detail implementasi, lihat:
- Konfigurasi autentikasi SSO Fabric untuk aplikasi Fabric Anda – kode masuk dan pendaftaran untuk aplikasi yang disebarkan.
- Tentukan izin data – gunakan identitas pengguna yang masuk untuk mengontrol akses data.
Modus autentikasi
Aplikasi Fabric yang diterapkan diautentikasi dengan Microsoft Entra ID. Pilih jalur integrasi berdasarkan di mana aplikasi berjalan dan siapa yang memperoleh token Entra:
| Environment | Metode yang didukung | Kapan harus menggunakannya |
|---|---|---|
| Aplikasi browser menggunakan portal Fabric | Popup SSO Fabric atau handoff tersemat | Biarkan Fabric melakukan login interaktif, atau login di aplikasi yang tertanam di dalam Fabric. |
| Browser atau aplikasi Node.js yang sudah memiliki token Entra yang didelegasikan | signInWithEntraToken() |
Tukarkan token yang disediakan dengan sesi Rayfin tanpa popup atau pengalihan. |
| Aplikasi yang disematkan dalam portal induk eksternal |
createEmbedHost() di induk dan initEmbeddedAuth() di iframe |
Biarkan broker induk terpercaya yang terautentikasi Entra melakukan handoff tanpa mengirim tokennya ke iframe. |
| Pengembangan lokal dengan backend lokal | Email dan kata sandi | Uji terhadap backend lokal; metode ini tidak berfungsi pada backend Fabric yang telah di-deploy. |
Konsep utama:
- Fabric SSO menggunakan portal Fabric untuk mengautentikasi pengguna browser. Aplikasi dapat berjalan di dalam Fabric atau menggunakan popup dari halaman mandiri, termasuk frontend lokal yang menargetkan backend yang telah di-deploy.
- Direct Entra exchange dan handoff eksternal-parent-host adalah jalur tambahan Microsoft Entra, bukan dukungan untuk penyedia identitas arbitrer atau masuk dengan perwakilan layanan khusus aplikasi.
- Email dan kata sandi hanya ditujukan untuk pengembangan lokal. Ini tidak berfungsi setelah penyebaran.
- Saat pertama kali masuk, sistem menyiapkan pengguna. Dengan SSO Fabric, tidak ada langkah pendaftaran terpisah—pengguna dibuat secara otomatis saat pertama kali masuk.
- Autentikasi diperlukan untuk penyebaran Fabric. Menyetel
services.auth.enabledkefalsemenyebabkannpx rayfin upgagal.
Untuk persyaratan token dan contoh implementasi, lihat Direct Entra token sign-in dan Embed in an external parent portal.
Sesi dan identitas
Setelah pengguna masuk, SDK membuat sesi yang mewakili pengguna yang masuk. Sesi tidak transparan—aplikasi Anda tidak boleh menginspeksi token yang mendasarinya. Sebagai gantinya, aplikasi Anda membaca sekumpulan kecil properti tingkat tinggi:
- Apakah sesi saat ini diautentikasi.
-
iddanemailmilik pengguna. - Klaim kustom yang telah Anda konfigurasi di
rayfin.yml.
Instans klien yang sama yang secara otomatis membuat pengguna login juga secara otomatis menyertakan identitas pengguna dalam setiap panggilan data dan penyimpanan. Anda tidak perlu memberikan token secara manual.
Sesi juga meningkatkan peristiwa perubahan, sehingga UI Anda dapat bereaksi saat pengguna masuk atau keluar tanpa memuat ulang halaman.
Untuk integrasi sisi server, gunakan klien terpisah dan sesi Auth hanya-memori per pengguna (authStorage: false pada RayfinClient, atau { storage: false } pada Auth). Jangan pernah membagikan klien yang sedang login dan dapat diubah antar pengguna. Hapus instance autentikasi ketika permintaan atau cakupan khusus pengguna berakhir.
Mengaktifkan autentikasi di proyek Anda
Autentikasi dikonfigurasi di rayfin/rayfin.yml. Contoh berikut memungkinkan SSO Fabric (untuk aplikasi yang disebarkan) dan masuk email/kata sandi (untuk pengembangan lokal):
services:
auth:
enabled: true
allowedRedirectUris:
- http://localhost:5173
fabric:
enabled: true
externalEntraExchange: true
password:
enabled: true # Local development only
Apa yang dikontrol setiap pengaturan:
-
services.auth.enabled– Mengaktifkan layanan autentikasi. Diperlukan untuk penyebaran Fabric apa pun. -
allowedRedirectUris– Asal-usul yang diizinkan untuk menerima pengguna setelah masuk. Tambahkan URL dev lokal Anda di sini.npx rayfin upmenambahkan asal aplikasi yang disebarkan secara otomatis. -
fabric.enabled– Mengaktifkan SSO Fabric. Diperlukan untuk aplikasi yang disebarkan. -
fabric.externalEntraExchange– Memungkinkan pertukaran token Entra yang didelegasikan secara langsung dan handoff ke host induk eksternal. Lingkungan Fabric target juga harus mendukung pertukaran tersebut. -
password.enabled– Mengaktifkan masuk dengan email dan kata sandi untuk pengembangan lokal.
Important
Penerapan Fabric mengharuskan autentikasi diaktifkan.
npx rayfin up gagal ketika services.auth.enabled diatur ke false.
Setelah mengedit rayfin.yml, mulai ulang backend lokal atau jalankan npx rayfin up untuk menerapkan perubahan.
Prasyarat untuk token Entra yang diperoleh secara eksternal
Pertukaran langsung dan autentikasi host induk eksternal memerlukan token pengguna yang didelegasikan untuk audiens Fabric/Power BI yang diterima oleh deployment target, dengan Item.Execute.All, yang dikeluarkan dalam tenant pemilik item. Pengguna juga harus memiliki izin Execute pada item aplikasi. Token khusus aplikasi tidak didukung oleh alur masuk ini.
Pustaka identitas Anda memperoleh token dan menangani persetujuan. SDK Rayfin menukarnya dengan sesi Rayfin; SDK ini tidak memperoleh token Entra. Klien berbasis browser juga membutuhkan kebijakan CORS layanan untuk mengizinkan origin permintaan dan header Authorization.
Klaim khusus
Klaim kustom memungkinkan Anda melampirkan metadata khusus aplikasi ke setiap sesi—misalnya, nama penyewa, bendera fitur, atau versi aplikasi. Fitur ini berguna untuk kontrol akses berbasis peran dan pembatasan fitur tanpa mengubah model data Anda.
services:
auth:
enabled: true
customClaims:
tenant: default
app_version: 1.0.0
Klaim kustom muncul di dalam objek sesi dan dapat dirujuk dari aturan izin data Anda.
Apa yang disediakan SDK
Saat Anda menggunakan RayfinClient, layanan autentikasi tersedia di client.auth. Pada tingkat konseptual, ini menyediakan:
- Mendaftar dan masuk dengan email dan kata sandi selama pengembangan lokal.
- Masuk dan mendaftar melalui Fabric SSO untuk aplikasi yang diterapkan. Panggilan yang sama menangani pengguna baru dan yang kembali.
- Pertukaran token Entra yang didelegasikan secara langsung dalam kode browser atau Node.js, plus serah terima ke host induk eksternal tepercaya untuk aplikasi tertanam.
- Keluar untuk mengakhiri sesi saat ini.
- Pembacaan sesi dan langganan sehingga UI Anda tetap sinkron dengan status autentikasi pengguna.
Untuk kode yang menghubungkan fitur-fitur ini ke dalam aplikasi nyata, lihat Konfigurasikan autentikasi Fabric SSO untuk aplikasi Fabric Anda. Untuk panduan tentang daftar yang diizinkan untuk callback dan handoff, lihat Konfigurasikan URI pengalihan autentikasi.