Bagikan melalui


API JavaScript Autentikasi

Front end Fabric menawarkan API JavaScript untuk beban kerja Fabric untuk memperoleh token untuk aplikasi mereka di ID Microsoft Entra. Artikel ini menjelaskan API ini.

API

acquireAccessToken(params: AcquireAccessTokenParams): Promise<AccessToken>;  
export interface AcquireAccessTokenParams {
    additionalScopesToConsent?: string[];  
    claimsForConditionalAccessPolicy?: string;
    promptFullConsent?: boolean;
}

API mengembalikan objek AccessToken yang berisi token itu sendiri dan tanggal kedaluwarsa untuk token.

Untuk memanggil API dalam sampel Frontend, buat item sampel lalu gulir ke bawah dan pilih Navigasi ke halaman Autentikasi. Dari sana Anda dapat memilih Dapatkan token akses untuk menerima token kembali.

Cuplikan layar memperlihatkan bagian autentikasi.

Persetujuan

Untuk memahami mengapa persetujuan diperlukan, silakan buka Persetujuan pengguna dan admin di ID Microsoft Entra.

Catatan

Persetujuan diperlukan agar CRUD/Pekerjaan berfungsi dan memperoleh token di seluruh penyewa.

Bagaimana cara kerja persetujuan dalam beban kerja Fabric?

Untuk memberikan persetujuan untuk aplikasi tertentu, Fabric FE membuat instans MSAL yang dikonfigurasi dengan ID aplikasi beban kerja dan meminta token untuk cakupan yang disediakan (additionalScopesToConsent - lihat AcquireAccessTokenParams).

Saat meminta token dengan aplikasi beban kerja untuk cakupan tertentu, ID Microsoft Entra menampilkan persetujuan popup jika hilang, lalu mengalihkan jendela popup ke URI pengalihan yang dikonfigurasi dalam aplikasi.

Biasanya URI pengalihan berada di domain yang sama dengan halaman yang meminta token, sehingga halaman dapat mengakses popup dan menutupnya.

Dalam kasus kami, itu tidak berada di domain yang sama, karena Fabric meminta token dan URI pengalihan beban kerja tidak ada di domain Fabric. Jadi ketika dialog persetujuan terbuka, dialog perlu ditutup secara manual setelah pengalihan. Kami tidak menggunakan kode yang dikembalikan di redirectUri, oleh karena itu kami hanya mengalihkannya secara otomatis (ketika MICROSOFT Entra ID mengalihkan popup ke URI pengalihan yang hanya ditutup).

Anda dapat melihat kode/konfigurasi Uri pengalihan dalam file index.ts .

Berikut adalah contoh popup persetujuan untuk aplikasi "aplikasi beban kerja saya" dan dependensinya (penyimpanan dan Power BI) yang kami konfigurasi saat melakukan penyiapan autentikasi:

Cuplikan layar dialog Izin diperlukan.

Cara lain untuk memberikan persetujuan di penyewa rumah (opsional)

Untuk mendapatkan persetujuan di penyewa beranda aplikasi, Anda dapat meminta admin penyewa untuk memberikan persetujuan untuk seluruh penyewa menggunakan URL dalam format berikut (masukkan ID penyewa Anda sendiri dan ID klien):

https://login.microsoftonline.com/{tenantId}/adminconsent?client_id={clientId}

AcquireAccessTokenParams

Saat memanggil API JS acquireAccessToken, kami dapat menyediakan tiga parameter:

  • additionalScopesToConsent: Cakupan lain untuk meminta persetujuan, misalnya skenario rekonsent.
  • claimsForConditionalAccessPolicy: Klaim yang dikembalikan dari ID Microsoft Entra saat alur OBO gagal, misalnya OBO memerlukan autentikasi multifaktor.
  • promptFullConsent: Meminta jendela persetujuan penuh dari dependensi statis aplikasi beban kerja.

additionalScopesToConsent

Jika Frontend beban kerja meminta token untuk digunakan untuk panggilan ke backend beban kerja, parameter ini harus null. Backend beban kerja dapat gagal melakukan OBO pada token yang diterima karena kesalahan persetujuan hilang, dalam hal ini backend beban kerja perlu menyebarluaskan kesalahan ke frontend beban kerja dan memberikan parameter ini.

claimsForConditionalAccessPolicy

Parameter ini digunakan saat menghadapi kegagalan OBO dalam beban kerja BE karena beberapa kebijakan akses bersyariah yang telah dikonfigurasi pada penyewa.

Kegagalan OBO karena kebijakan akses bersyarkat mengembalikan string yang disebut "klaim." String ini harus dikirim ke FE beban kerja di mana FE harus meminta token dan meneruskan klaim sebagai claimsForConditionalAccessPolicy. Untuk informasi selengkapnya, lihat Menangani autentikasi multifaktor (MFA), akses bersyarkat, dan persetujuan bertambah bertahap.

Lihat Penggunaan AuthenticationService AddBearerClaimToResponse dalam sampel BE untuk melihat contoh respons saat operasi OBO gagal karena persetujuan tidak ada atau kebijakan akses bersyarah.

Untuk mempelajari selengkapnya tentang additionalScopesToConsent dan klaimForConditionalAccessPolicy ini dan lihat contoh penggunaan, lihat Panduan autentikasi beban kerja & mendalami.

promptFullConsent

Ketika diteruskan sebagai benar, persetujuan penuh dari dependensi statis akan muncul untuk pengguna terlepas dari apakah itu memberikan persetujuan sebelumnya atau tidak. Contoh penggunaan untuk parameter ini adalah menambahkan tombol ke UX tempat pengguna dapat menggunakannya untuk memberikan persetujuan penuh untuk beban kerja.