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.
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.
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.
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.
Dari bagian Properti, salin ID Objek.
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:
Pasang Microsoft Graph PowerShell SDK.
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 setiapEffectiveIdentity
. - 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.
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):
- Di portal Microsoft Azure, navigasikan ke Microsoft Entra ID>Pengguna dan grup>Pengaturan pengguna.
- Aktifkan pengaturan Pengguna dapat menyetujui aplikasi yang mengakses data perusahaan atas nama mereka dan simpan perubahan.
- 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 | |
Parameter tidak valid | parameter powerbiToken tidak ditentukan | N/A | |
Memuat Laporan Gagal | Gagal menginisialisasi - Tidak dapat mengatasi kluster | 403 | |
PowerBINotAuthorizedException | Gagal mendapatkan laporan | 401 | |
Token Kedaluwarsa | Token akses telah kedaluwarsa, kirim ulang dengan token akses baru. Tidak bisa menampilkan visual laporan yang berjudul: judul visual | N/A | |
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 |
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 | |
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 | |
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 | |
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 |
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).
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.
Konten terkait
Pertanyaan yang Sering Diajukan tentang Power BI Embedded
Pertanyaan lebih lanjut? Tanyakan kepada Komunitas Power BI