Bagikan melalui


Pemecahan masalah aplikasi tertanam Anda

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

Alat pemecahan masalah

Pelacakan 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 memperlihatkan lalu lintas HTTP Power BI API.

F12 di peramban web untuk debugging 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 Microsoft 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 Microsoft Azure saat mendaftarkan aplikasi baru

Setidaknya satu pengguna harus terdaftar untuk Power BI. Jika Anda tidak melihat layanan Power BI tercantum dalam daftar API, tidak ada pengguna yang mendaftar untuk 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, buka aplikasi Microsoft Entra Anda, dan salin dari Gambaran Umum.

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

ID objek utama

ID objek utama, yang 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 Microsoft Azure, yang memperlihatkan opsi Aplikasi terkelola di direktori lokal di bilah Gambaran Umum aplikasi Microsoft Entra.

Dari bagian Properti, salin ID Objek.

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

Otentikasi

Autentikasi gagal dengan AADSTS70002 atau AADSTS50053

(AADSTS70002: Kesalahan memvalidasi kredensial. AADSTS50053: Anda telah mencoba masuk terlalu banyak kali 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 memiliki cakupan pada organisasi, atau sebuah 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. Pasang 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 belum disediakan.
  • DatasetId tidak disediakan.
  • Pengguna tidak memiliki izin yang benar.

Untuk menentukan masalah, coba langkah-langkah berikut:

  • Jalankan mendapatkan himpunan data. Apakah properti 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: Pemberian 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 Microsoft Azure, yang menunjukkan kesalahan izin Uji Persetujuan.

Pengguna admin dapat masuk dan berhasil memberikan persetujuan.

Akar penyebab :

Persetujuan pengguna dinonaktifkan untuk penyewa.

Beberapa perbaikan dimungkinkan:

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

Cuplikan layar portal Microsoft 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 tenant dalam parameter authorityUri.

  • URL untuk mengautentikasi di tenant 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 aplikasi Anda menjadimultitenan.

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
Token Kedaluwarsa Token akses telah kedaluwarsa, kirim ulang dengan token akses baru 403 Token kedaluwarsa
PowerBIEntitasTidakDitemukan Gagal mendapatkan laporan 404
  • ID Laporan yang Salah
  • Laporan tidak ada
  • Parameter tidak valid parameter powerbiToken tidak ditentukan N/A
  • Tidak ada token akses yang disediakan
  • Tidak ada ID laporan yang disediakan
  • Memuat Laporan Gagal Gagal menginisialisasi - Tidak dapat mengatasi kluster 403
  • Token akses buruk
  • Jenis sematkan tidak cocok dengan jenis token
  • PowerBINotAuthorizedException Gagal mendapatkan laporan 401
  • ID grup salah
  • Grup tidak sah
  • Token Kedaluwarsa Token akses telah kedaluwarsa, kirim ulang dengan token akses baru. Tidak bisa menampilkan visual laporan yang berjudul: judul visual N/A
  • Kueri data
  • Token kedaluwarsa
  • OpenConnectionError Tidak dapat menampilkan visual. Tidak dapat merender visual laporan berjudul: judul visual N/A Kapasitas dihentikan sementara atau dihapus ketika laporan yang terkait dengan kapasitas tersebut terbuka dalam sebuah sesi.
    ExplorationContainer_FailedToLoadModel_DefaultDetails Tidak dapat memuat skema model yang terkait dengan laporan ini. Pastikan Anda memiliki koneksi ke server dan coba lagi. N/A
  • Penjedaian kapasitas
  • Kapasitas dihapus
  • Kesalahan umum saat menyematkan untuk pengguna non-Power BI (menggunakan Token Semat)

    Pesan Pesan Terperinci Kode Kesalahan Kemungkinan alasan
    Token Kedaluwarsa Token akses telah kedaluwarsa, kirim ulang dengan token akses baru 403 Token kedaluwarsa
    Gagal Memuat Laporan Gagal mendapatkan laporan 404
  • ID Laporan Salah
  • Laporan tidak ada
  • Gagal Memuat Laporan Gagal mendapatkan laporan 403 ID Laporan tidak cocok dengan token
    PemuatanLaporanGagal Pelaporan gagal 500 ID yang diberikan bukan GUID
    Parameter tidak valid parameter powerbiToken tidak ditentukan N/A
  • Tidak ada token akses yang disediakan
  • tidak ada ID laporan yang disediakan
  • LoadReportFailed Gagal menginisialisasi - Tidak dapat mengatasi kluster 403 Jenis token salah atau token buruk
    PowerBINotAuthorizedException Gagal mendapatkan laporan 401 ID grup yang salah/tidak sah
    Token Kedaluwarsa Token akses telah kedaluwarsa, kirim ulang dengan token akses baru. Tidak dapat menampilkan visual laporan dengan judul: judul visual N/A
  • Kueri data
  • Token kedaluwarsa
  • OpenConnectionError Tidak dapat menampilkan visual. Tidak dapat menampilkan visual laporan dengan judul: judul visual N/A Kapasitas dijeda atau dihapus saat laporan yang terkait dengan kapasitas terbuka dalam sesi
    KontainerEksplorasi_GagalMemuatModel_DetailDefault Tidak dapat memuat skema model yang terkait dengan laporan ini. Pastikan Anda memiliki koneksi ke server dan coba lagi. N/A
  • Kapasitas telah dijeda
  • Kapasitas dihapus
  • Laporan gagal diakses - kesalahan 401 - akan terselesaikan sendiri

    Dalam skenario pengguna memiliki data, terkadang pengguna akan mendapatkan kesalahan 401 yang teratasi dengan sendirinya setelah mengakses portal Power BI. Saat kesalahan 401 terjadi, tambahkan panggilan RefreshUser Permissions 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 Power BI keamanan tingkat baris (RLS).

    • 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 playground analitik tersemat Power BI

    Untuk mengesampingkan masalah dengan aplikasi Anda, verifikasi bahwa item Power BI dapat dilihat di Power BI playground analitik tersemat.

    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 Segarkan token akses.

    Kinerja

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

    Pertanyaan yang Sering Diajukan tentang Power BI Embedded

    Pertanyaan lebih lanjut? Tanyakan kepada Komunitas Power BI