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.
Sampel beban kerja pengembang Fabric memiliki alur autentikasi berikut di sisi backend.
Autentikasi dan otorisasi permintaan dari Fabric ke beban kerja
Struktur header otorisasi
Header otorisasi menggunakan format token tertentu:
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Format ini mencakup dua token yang berbeda:
-
subjectToken: Token yang didelegasikan yang mewakili pengguna atas nama operasi sedang dilakukan. -
appToken: Token khusus untuk aplikasi Fabric.
Alasan di belakang menggunakan header token ganda adalah tiga kali lipat:
Validasi: Beban kerja dapat memverifikasi bahwa permintaan berasal dari Fabric dengan memvalidasi
appToken.Konteks Pengguna:
subjectTokenmenyediakan konteks pengguna untuk tindakan yang sedang dilakukan.Komunikasi Antar-Layanan: Beban kerja dapat memperoleh token On-Behalf-Of (OBO) menggunakan
subjectToken, memungkinkannya untuk memanggil layanan lain dengan token pengguna.
Autentikasi
Pemeriksaan autentikasi utama yang dilakukan untuk SubjectAndAppToken adalah:
Validasi dan penguraian nilai header otorisasi dilakukan dalam metode AuthenticateControlPlaneCall . Token harus dimulai dengan awalan "SubjectAndAppToken1.0" dan menyertakan dua token -
subjectTokendanappToken.Validasi properti token Entra: Keduanya
subjectTokendanappTokendivalidasi untuk properti token Microsoft Entra umum dalam metode ValidateAadTokenCommon . Properti ini termasuk tanda tangan token, masa pakai token, audiens token (audiens aplikasi beban kerja), dan versi token (1.0) dan penerbit.validasi properti appToken: Seharusnya
appTokentidak memilikiscpklaim tetapi harus memilikiidtypklaim dengan aplikasi sebagai nilai. Kami juga memeriksatidklaim tersebut di ID penyewa penerbit beban kerja.Contoh klaim appToken:
{ "aud": "api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample/123", "iss": "https://sts.windows.net/12345678-77f3-4fcc-bdaa-487b920cb7ee/", "iat": 1700047232, "nbf": 1700047232, "exp": 1700133932, "aio": "E2VgYLjBuv2l+c6cmm/iP/bnL2v+AQA=", "appid": "11112222-bbbb-3333-cccc-4444dddd5555" "appidacr": "2", "idp": "https://sts.windows.net/12345678-77f3-4fcc-bdaa-487b920cb7ee/", "idtyp": "app", "oid": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "rh": "0.ACgAGX-u-vN3zE-9qkh7kgy37hQbaU7-v2xFr59O_foS7VLZAAA.", "sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb", "tid": "bbbbcccc-1111-dddd-2222-eeee3333ffff", "uti": "5bgMXs3uMUSAHCruRjACAA", "ver": "1.0" }validasi properti subjectToken: Pastikan bahwa subjectToken menyertakan
scpklaim denganFabricWorkloadControlcakupan, bahwa tidakidtypada klaim yang ada dalam token, dan bahwa itu memiliki hal yang samaappidseperti diappToken.Sampel klaim subjectToken:
{ "aud": "api://localdevinstance/aaaabbbb-0000-cccc-1111-dddd2222eeee/Fabric.WorkloadSample/123", "iss": "https://sts.windows.net/12345678-77f3-4fcc-bdaa-487b920cb7ee/", "iat": 1700050446, "nbf": 1700050446, "exp": 1700054558, "acr": "1", "aio": "ATQAy/8VAAAAUgWRMRnBo4VGHvrKRykUXOXBNKS1cHnBxLrYkZJJGSjAVyJGBecbLdSud1GUakER", "amr": [ "pwd" ], "appid": "11112222-bbbb-3333-cccc-4444dddd5555" "appidacr": "2", "ipaddr": "46.117.19.50", "name": "john doe", "oid": "bbbbbbbb-1111-2222-3333-cccccccccccc", "rh": "0.ASgAGX-u-vN3zE-9qkh7kgy37hQbaU7-v2xFr59O_foS7VLZANQ.", "scp": "FabricWorkloadControl", "sub": "X0Wl85UA-uOmdkQz5MoT-hEgYZXDq9FYdS8g2bFUaZA", "tid": "bbbbcccc-1111-dddd-2222-eeee3333ffff", "unique_name": "user1@constso.com", "upn": "user1@constso.com", "uti": "_llZwmJoSUiHv-kw6tfDAA", "ver": "1.0" }
Lihat IAuthenticationService.
Catatan
Semua validasi dalam kode sampel kami adalah untuk token versi 1.0.
Authorization
Setelah dikonfirmasi bahwa permintaan berasal dari layanan Fabric (melalui appToken), Fabric memverifikasi bahwa pengguna memiliki izin yang diperlukan untuk melakukan tindakan, berdasarkan metadata izin Fabric.
Autentikasi dan otorisasi permintaan dari beban kerja ke Fabric
Permintaan kontrol beban kerja
API kontrol beban kerja adalah API Fabric khusus yang mendukung beban kerja dengan manajemen siklus hidup item Fabric mereka. API ini menggunakan format header otorisasi SubjectAndAppToken1.0 yang sama.
SubjectAndAppToken1.0 subjectToken="delegated token", appToken="S2S token"
Panggilan yang berasal dari beban kerja, termasuk token berikut:
subjectToken: Token yang didelegasikan pengguna (diperoleh melalui alur OBO) yang mewakili pengguna yang atas nama operasi sedang dilakukan. Fabric memverifikasi bahwa pengguna memiliki izin yang diperlukan untuk melakukan tindakan yang diperlukan.appToken: Token khusus untuk aplikasi beban kerja. Fabric memeriksa bahwa token ini berasal dari aplikasi Microsoft Entra dari beban kerja tempat item Fabric yang relevan berada dan yang ada di penyewa penerbit beban kerja.
Lihat metode di ValidatePermissionsAuthorizationHandler.
API Publik
Untuk memanggil API Fabric publik, beban kerja harus memperoleh token Microsoft Entra OBO standar dengan cakupan API yang relevan dan meneruskannya sebagai token pembawa di header otorisasi permintaan.
Lihat FabricExtensionController.
Autentikasi dan otorisasi permintaan dari beban kerja FE ke beban kerja BE
Header otorisasi
Header otorisasi dalam permintaan yang dikirim dari beban kerja FE ke beban kerja BE menggunakan token pembawa standar.
Autentikasi
Metode AuthenticateControlPlaneCall dalam beban kerja BE bertanggung jawab untuk memvalidasi token. Pemeriksaan utama yang dilakukan adalah:
Masa pakai token: Memastikan token berada dalam periode penggunaan yang valid.
Tanda tangan: Memverifikasi keaslian token.
Audiens: Memeriksa apakah audiens token cocok dengan beban kerja aplikasi Microsoft Entra.
Penerbit: Memvalidasi penerbit token.
Cakupan yang diizinkan: Memvalidasi cakupan yang diizinkan untuk diakses token.
Otorisasi dicapai dengan memanggil metode ValidatePermissions . Metode ini memanggil resolvePermissions API di titik akhir kontrol beban kerja Fabric untuk item Fabric yang relevan dan memverifikasi bahwa pengguna memiliki izin yang diperlukan untuk operasi.
Operasi jangka panjang - refresh Token
Otorisasi dicapai dengan memanggil metode ValidatePermissions . Metode ini memanggil resolvePermissions API di titik akhir kontrol beban kerja Fabric untuk item Fabric yang relevan dan memverifikasi bahwa pengguna memiliki izin yang diperlukan untuk operasi.
Jika beban kerja Anda menyertakan operasi yang berjalan lama, misalnya, sebagai bagian dari JobScheduler , Anda mungkin mengalami situasi di mana masa pakai Token tidak cukup. Untuk informasi selengkapnya tentang cara mengautentikasi proses jangka panjang, proses OBO yang berjalan lama.