Memecahkan masalah aplikasi yang Anda sematkan

Artikel ini membahas beberapa masalah umum yang dapat muncul saat menyematkan konten dari Power BI.

Alat pemecahan masalah

Jejak Fiddler

Fiddler adalah alat gratis dari Telerik yang memantau lalu lintas HTTP. Anda dapat melihat lalu lintas dengan API Power BI dari komputer klien. Alat ini mungkin menunjukkan kesalahan dan informasi terkait lainnya.

Cuplikan layar jendela output alat Fiddler, yang menunjukkan lalu lintas HTTP API Power BI.

F12 di Browser untuk penelusuran kesalahan frontend

Kunci F12 meluncurkan jendela pengembang dalam browser Anda. Alat ini memungkinkan Anda melihat lalu lintas jaringan dan melihat informasi berharga lainnya.

Cuplikan layar tab Jaringan jendela pengembang browser web, yang menunjukkan lalu lintas jaringan.

Mengekstrak detail kesalahan dari respons Power BI

Cuplikan kode ini menunjukkan cara mengekstrak detail kesalahan dari pengecualian HTTP:

public static string GetExceptionText(this HttpOperationException exc)
{
    var errorText = string.Format("Request: {0}\r\nStatus: {1} ({2})\r\nResponse: {3}",
    exc.Request.Content, exc.Response.StatusCode, (int)exc.Response.StatusCode, exc.Response.Content);
    if (exc.Response.Headers.ContainsKey("RequestId"))
    {
        var requestId = exc.Response.Headers["RequestId"].FirstOrDefault();
        errorText += string.Format("\r\nRequestId: {0}", requestId);
    }

    return errorText;
}

Sebaiknya buat log ID Permintaan (dan detail kesalahan untuk pemecahan masalah). Berikan ID Permintaan saat mendekati dukungan Microsoft.

Pendaftaran aplikasi

Kegagalan pendaftaran aplikasi

Pesan kesalahan dalam portal Azure atau halaman pendaftaran aplikasi Power BI akan memberi tahu Anda jika Anda tidak memiliki hak istimewa yang memadai untuk mendaftarkan aplikasi Anda. Untuk mendaftarkan aplikasi, Anda harus menjadi admin di penyewa Microsoft Entra, atau pendaftaran aplikasi harus diaktifkan untuk pengguna non-admin.

layanan Power BI tidak muncul di portal Azure saat mendaftarkan aplikasi baru

Setidaknya satu pengguna harus mendaftar untuk Power BI. Jika Anda tidak melihat layanan Power BI tercantum dalam daftar API, tidak ada pengguna yang mendaftar ke Power BI.

Apa perbedaan antara ID objek aplikasi dan ID objek utama?

Saat Anda mendaftarkan aplikasi Microsoft Entra, ada dua parameter yang disebut ID objek. Bagian ini menjelaskan tujuan setiap parameter, dan cara mendapatkannya.

ID Objek Aplikasi

ID objek aplikasi, juga dikenal sebagai ID objek, adalah ID unik objek aplikasi Microsoft Entra Anda.

Untuk mendapatkan ID objek aplikasi, navigasikan ke aplikasi Microsoft Entra Anda, dan salin dari Gambaran Umum.

Cuplikan layar jendela portal Azure, yang memperlihatkan ID objek di bilah Gambaran Umum aplikasi Microsoft Entra.

ID objek utama

ID objek utama, juga dikenal sebagai ID objek, adalah ID unik dari objek perwakilan layanan yang terkait dengan aplikasi Microsoft Entra Anda.

Untuk mendapatkan ID objek utama Anda, navigasikan ke aplikasi Microsoft Entra Anda, dan dari Gambaran Umum, pilih tautan aplikasi di Aplikasi terkelola di direktori lokal.

Cuplikan layar jendela portal Azure, yang menunjukkan opsi Aplikasi terkelola di direktori lokal di bilah Gambaran Umum aplikasi Microsoft Entra.

Dari bagian Properti, salin ID Objek.

Cuplikan layar jendela portal Azure, yang memperlihatkan ID objek utama di bagian properti di bilah Gambaran Umum aplikasi Microsoft Entra.

Autentikasi

Autentikasi gagal dengan AADSTS70002 atau AADSTS50053

(AADSTS70002: Kesalahan memvalidasi kredensial. AADSTS50053: Anda telah mencoba masuk terlalu banyak dengan ID Pengguna atau kata sandi yang salah)

Jika Anda menggunakan Power BI Embedded dan autentikasi langsung Microsoft Entra, Anda mungkin menerima pesan seperti pesan sebelumnya saat mencoba masuk, karena autentikasi langsung tidak diaktifkan.

Anda dapat mengaktifkan kembali autentikasi langsung menggunakan kebijakan Microsoft Entra yang dilingkupkan ke organisasi, atau perwakilan layanan.

Kami sarankan Anda mengaktifkan kebijakan ini hanya berdasarkan per aplikasi.

Untuk membuat kebijakan ini, Anda harus menjadi Administrator Global untuk direktori tempat Anda membuat kebijakan dan menetapkannya. Berikut adalah contoh skrip untuk membuat kebijakan dan menetapkannya ke SP untuk aplikasi ini:

  1. Instal Microsoft Graph PowerShell SDK.

  2. Jalankan perintah PowerShell berikut baris demi baris (pastikan variabel $sp tidak memiliki lebih dari satu aplikasi sebagai hasilnya).

    Connect-MgGraph -Scopes "Directory.Read.All","Policy.ReadWrite.ApplicationConfiguration"
    
    $sp = Get-MgServicePrincipal -Filter "DisplayName eq 'Name_Of_Application'"
    
    $policy = New-MgBetaPolicyActivityBasedTimeoutPolicy -Definition @("{`"AllowCloudPasswordValidation`":true}") `
       -DisplayName EnableDirectAuth -IsOrganizationDefault:$false
    
    $params = @{
       "@odata.id" = "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/$policy.Id"
    }
    New-MgBetaServicePrincipalClaimMappingPolicyByRef -ServicePrincipalId $sp.Id `
       -BodyParameter $params
    

Setelah menetapkan kebijakan, tunggu sekitar 15-20 detik untuk penyebaran sebelum pengujian.

Menghasilkan token gagal saat memberikan identitas yang efektif

GenerateToken dapat gagal dengan identitas efektif yang disediakan karena beberapa alasan berbeda:

  • Model semantik tidak mendukung identitas yang efektif.
  • Nama pengguna tidak disediakan.
  • Peran tidak disediakan.
  • DatasetId tidak disediakan.
  • Pengguna tidak memiliki izin yang benar.

Untuk menentukan masalahnya, coba langkah-langkah berikut:

  • Jalankan dapatkan himpunan data. Apakah propertinya IsEffectiveIdentityRequired benar?
  • Nama pengguna diperlukan untuk setiap EffectiveIdentity.
  • Jika IsEffectiveIdentityRolesRequired benar, Peran diperlukan.
  • DatasetId diperlukan untuk setiap EffectiveIdentity.
  • Untuk Analysis Services, pengguna master harus menjadi admin gateway.

AADSTS90094: Hibah memerlukan izin admin

Gejala:

Saat pengguna non-admin mencoba masuk ke aplikasi untuk pertama kalinya saat memberikan persetujuan, maka mendapatkan salah satu kesalahan berikut:

  •   ConsentTest needs permission to access resources in your organization that only an admin can grant. Ask an admin to grant permission to this app before you can use it.
    
  •   AADSTS90094: The grant requires admin permission.
    

    Cuplikan layar dialog masuk jendela portal Azure, yang menunjukkan kesalahan izin Uji Persetujuan.

Pengguna admin dapat masuk dan berhasil memberikan persetujuan.

Akar masalah:

Persetujuan pengguna dinonaktifkan untuk penyewa.

Beberapa perbaikan dimungkinkan:

  • Aktifkan persetujuan pengguna untuk seluruh penyewa (semua pengguna, semua aplikasi):
  1. Di portal Azure, navigasikan ke Pengguna ID>Microsoft Entra dan grup>Pengaturan pengguna.
  2. Aktifkan Pengguna dapat menyetujui aplikasi yang mengakses data perusahaan atas nama mereka dan menyimpan perubahan.

Cuplikan layar portal Azure.

  • Admin dapat memberikan izin ke aplikasi - baik untuk seluruh penyewa atau pengguna tertentu.

Kesalahan CS1061

Unduh Microsoft.IdentityModel.Clients.ActiveDirectory jika Anda mengalami kesalahan berikut:

'AuthenticationContext' does not contain a definition for 'AcquireToken' and no accessible 'AcquireToken' accepting a first argument of type 'AuthenticationContext' could be found (are you missing a using directive or an assembly reference?)

Token Microsoft Entra untuk penyewa yang berbeda (pengguna tamu)

Saat Anda menyematkan untuk organisasi Anda, untuk mengizinkan pengguna tamu Microsoft Entra mengakses konten Anda, Anda perlu menentukan ID penyewa dalam authorityUri parameter .

  • URL untuk mengautentikasi di penyewa organisasi Anda:

    https://login.microsoftonline.com/common/v2.0

  • URL untuk mengautentikasi pengguna Microsoft Entra tamu:

    https://login.microsoftonline.com/<tenant ID>

Untuk menemukan ID penyewa, Anda dapat menggunakan instruksi di Menemukan ID penyewa Microsoft Entra dan nama domain utama.

Untuk informasi selengkapnya, lihat Membuat multi-penyewa aplikasi Anda.

Sumber data

ISV ingin memiliki kredensial yang berbeda untuk sumber data yang sama

Sumber data dapat memiliki satu set kredensial untuk satu pengguna master. Jika Anda perlu menggunakan kredensial yang berbeda, buat lebih banyak pengguna master. Kemudian, tetapkan kredensial yang berbeda ke setiap konteks pengguna master, dan sematkan menggunakan token Microsoft Entra pengguna tersebut.

Memecahkan masalah aplikasi tersemat Anda dengan objek IError

Gunakan objek IError yang dikembalikan oleh peristiwa kesalahan dari JavaScript SDK untuk men-debug aplikasi Anda dan lebih memahami penyebab kesalahan Anda.

Setelah memperoleh objek IError, Anda harus melihat tabel kesalahan umum yang sesuai dengan jenis semat yang Anda gunakan. Bandingkan properti IError dengan properti dalam tabel dan temukan kemungkinan alasan kegagalan tersebut.

Kesalahan umum saat menyematkan untuk pengguna Power BI

Pesan Pesan Terperinci Kode Kesalahan Kemungkinan alasan
TokenExpired Token akses telah kedaluwarsa, kirim ulang dengan token akses baru 403 Token kedaluwarsa
PowerBIEntityNotFound Gagal mendapatkan laporan 404
  • ID Laporan Salah
  • Laporan tidak ada
  • Parameter tidak valid Parameter powerbiToken tidak ditentukan T/A
  • Tidak ada token akses yang disediakan
  • TIDAK ada ID Laporan yang disediakan
  • LoadReportFailed Gagal menginisialisasi - Tidak dapat menyelesaikan kluster 403
  • Token akses buruk
  • Jenis sematkan tidak cocok dengan jenis token
  • PowerBINotAuthorizedException Gagal mendapatkan laporan 401
  • ID grup salah
  • Grup tidak sah
  • TokenExpired Token akses telah kedaluwarsa, kirim ulang dengan token akses baru. Tidak dapat merender visual laporan berjudul: judul visual T/A
  • Data kueri
  • Token kedaluwarsa
  • OpenConnectionError Tidak dapat menampilkan visual. Tidak dapat merender visual laporan berjudul: judul visual T/A Kapasitas dijeda atau dihapus saat laporan yang terkait dengan kapasitas terbuka dalam sesi
    ExplorationContainer_FailedToLoadModel_DefaultDetails Tidak dapat memuat skema model yang terkait dengan laporan ini. Pastikan Anda memiliki koneksi ke server dan coba lagi. T/A
  • Kapasitas dijeda
  • Kapasitas dihapus
  • Kesalahan umum saat menyematkan untuk pengguna yang tidak menggunakan Power BI (menggunakan Token Semat)

    Pesan Pesan Terperinci Kode Kesalahan Alasan
    TokenExpired Token akses telah kedaluwarsa, kirim ulang dengan token akses baru 403 Token kedaluwarsa
    LoadReportFailed Gagal mendapatkan laporan 404
  • ID Laporan Salah
  • Laporan tidak ada
  • LoadReportFailed Gagal mendapatkan laporan 403 ID Laporan tidak cocok dengan token
    LoadReportFailed Gagal mendapatkan laporan 500 ID yang disediakan laporan bukan GUID
    Parameter tidak valid Parameter powerbiToken tidak ditentukan T/A
  • Tidak ada token akses yang disediakan
  • TIDAK ada ID Laporan yang disediakan
  • LoadReportFailed Gagal menginisialisasi - Tidak dapat menyelesaikan kluster 403 Jenis token salah atau token buruk
    PowerBINotAuthorizedException Gagal mendapatkan laporan 401 ID grup yang salah/tidak sah
    TokenExpired Token akses telah kedaluwarsa, kirim ulang dengan token akses baru. Tidak dapat merender visual laporan berjudul: judul visual T/A
  • Data kueri
  • Token kedaluwarsa
  • OpenConnectionError Tidak dapat menampilkan visual. Tidak dapat merender visual laporan berjudul: judul visual T/A Kapasitas dijeda atau dihapus saat laporan yang terkait dengan kapasitas terbuka dalam sesi
    ExplorationContainer_FailedToLoadModel_DefaultDetails Tidak dapat memuat skema model yang terkait dengan laporan ini. Pastikan Anda memiliki koneksi ke server dan coba lagi. T/A
  • Kapasitas dijeda
  • Kapasitas dihapus
  • Dapatkan laporan gagal - kesalahan 401 - selesaikan sendiri

    Dalam skenario data pengguna memiliki, terkadang pengguna akan mendapatkan kesalahan 401 yang menyelesaikannya sendiri setelah mereka mengakses portal Power BI. Saat kesalahan 401 terjadi, tambahkan panggilan Izin RefreshPengguna di aplikasi seperti yang dijelaskan dalam Memperbarui izin pengguna.

    Model semantik

    Mengelola bagian data mana yang dapat dilihat pengguna Anda

    Setiap pengguna dengan izin baca untuk model semantik dapat melihat seluruh skema (tabel, kolom, dan pengukuran) dan semua data. Anda tidak dapat mengontrol menampilkan izin untuk data mentah dan agregat secara terpisah dalam model semantik yang sama.

    Untuk mengelola bagian data mana yang dapat dilihat pengguna Anda, gunakan salah satu metode berikut:

    • Pemfilteran tingkat baris menggunakan keamanan tingkat baris (RLS) Power BI.

    • Keamanan tingkat objek (OLS).

    • Pisahkan data menjadi model semantik yang berbeda. Misalnya, Anda dapat membuat model semantik yang hanya berisi data agregat dan memberi pengguna Anda akses hanya ke model semantik tersebut.

    Penyajian konten

    Untuk mengatasi masalah penyajian dalam item Power BI yang disematkan (seperti laporan dan dasbor), tinjau bagian ini.

    Verifikasi bahwa item Power BI dimuat di layanan Power BI

    Untuk mengesampingkan masalah dengan aplikasi Anda atau API penyematan, verifikasi bahwa item dapat dilihat di layanan Power BI (powerbi.com).

    Verifikasi bahwa item Power BI dimuat di taman bermain analitik tertanam Power BI

    Untuk mengesampingkan masalah dengan aplikasi Anda, verifikasi bahwa item Power BI dapat dilihat di Power BI taman bermain analitik tertanam Power BI.

    Verifikasi bahwa token akses Anda tidak kedaluwarsa

    Untuk tujuan keamanan, token akses (token Microsoft Entra atau token semat) memiliki masa pakai terbatas. Anda harus terus memantau token akses Anda dan merefreshnya jika diperlukan. Untuk informasi selengkapnya, lihat Merefresh token akses.

    Performa

    Untuk mendapatkan konten tersemat berkinerja terbaik, kami sarankan Anda mengikuti praktik terbaik analitik tertanam Power BI.

    Menyematkan alat penyiapan

    Anda dapat melalui alat penyiapan Penyematan untuk mengunduh aplikasi sampel dengan cepat. Kemudian Anda dapat membandingkan aplikasi Anda dengan sampel.

    Prasyarat

    Verifikasi bahwa Anda memiliki semua prasyarat yang tepat sebelum menggunakan alat penyiapan Penyematan. Anda memerlukan akun Power BI Pro dan langganan Microsoft Azure.

    Masalah Umum

    Beberapa masalah umum yang mungkin Anda temui saat menguji dengan alat penyiapan Sematkan adalah:

    Menggunakan Sematkan untuk aplikasi contoh organisasi

    Jika Anda bekerja dengan Sematkan untuk pengalaman pelanggan Anda, simpan dan buka zip file PowerBI-Developer-Samples.zip. Kemudian buka folder Data PowerBI-Developer-Samples-master\App Owns dan jalankan file PowerBIEmbedded_AppOwnsData.sln.

    • Saat memilih Beri izin (langkah Beri izin), Anda mendapatkan kesalahan berikut:
    AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
    

    Solusinya adalah menutup popup, tunggu beberapa detik dan coba lagi. Anda mungkin perlu mengulangi tindakan ini beberapa kali. Interval waktu menyebabkan masalah menyelesaikan proses pendaftaran aplikasi hingga saat tersedia untuk API eksternal.

    • Pesan kesalahan berikut muncul saat menjalankan aplikasi sampel:
    Password is empty. Please fill password of Power BI username in web.config.
    

    Kesalahan ini terjadi karena satu-satunya nilai yang tidak dimasukkan ke dalam aplikasi sampel adalah kata sandi pengguna Anda. Buka file Web.config dalam solusi dan isi pbiPassword bidang dengan kata sandi pengguna Anda.

    • Jika Anda mendapatkan kesalahan:
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Anda perlu menggunakan akun Microsoft Entra yang tidak mengaktifkan MFA.

    Menggunakan Sematkan untuk aplikasi contoh organisasi

    Jika Anda bekerja dengan Sematkan untuk pengalaman organisasi Anda, simpan dan buka zip file PowerBI-Developer-Samples.zip. Kemudian buka folder PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app dan jalankan file pbi-saas-embed-report.sln.

    • Saat menjalankan Sematkan untuk aplikasi sampel organisasi, Anda mendapatkan kesalahan berikut:
    AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
    

    Kesalahan ini karena URL pengalihan yang ditentukan untuk aplikasi server web berbeda dari URL sampel. Jika Anda ingin mendaftarkan aplikasi sampel, gunakan https://localhost:13526/ sebagai URL pengalihan.

    Jika Anda ingin mengedit aplikasi terdaftar, perbarui aplikasi terdaftar Microsoft Entra, sehingga aplikasi dapat menyediakan akses ke API web.

    Jika Anda ingin mengedit profil pengguna atau data Power BI, pelajari cara mengedit data Power BI Anda.

    • Jika Anda mendapatkan kesalahan:
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Anda perlu menggunakan akun Microsoft Entra yang tidak mengaktifkan MFA.

    Untuk informasi selengkapnya, lihat FAQ Power BI Embedded.

    Untuk bantuan lebih lanjut, hubungi dukungan atau buat tiket dukungan melalui portal Azure dan berikan pesan kesalahan yang Anda temui.

    Ada pertanyaan lagi? Tanyakan kepada Komunitas Power BI