Dela via


Felsöka inbäddade program

I den här artikeln beskrivs några vanliga problem som kan uppstå när innehåll bäddas in från Power BI.

Verktyg för felsökning

Fiddler-spårning

Fiddler är ett kostnadsfritt verktyg från Telerik som övervakar HTTP-trafik. Du kan se trafiken med Power BI-API från klientdatorn. Det här verktyget kan visa fel och annan relaterad information.

Skärmbild av utdatafönstret för Fiddler-verktyget, som visar Power BI-API HTTP-trafik.

F12 i webbläsare för felsökning av klientdelen

F12-nyckeln startar utvecklarfönstret i webbläsaren. Med det här verktyget kan du titta på nätverkstrafik och se annan värdefull information.

Skärmbild av webbläsarutvecklarfönstrets fliken Nätverk, som visar nätverkstrafiken.

Extrahera felinformation från Power BI-svar

Det här kodfragmentet visar hur du extraherar felinformationen från ett HTTP-undantag:

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;
}

Vi rekommenderar att du loggar begärande-ID :t (och felinformation för felsökning). Ange begärande-ID när du närmar dig Microsoft-supporten.

Appregistrering

Fel vid appregistrering

Felmeddelanden i Azure-portalen eller på registreringssidan för Power BI-appen meddelar dig om du inte har tillräcklig behörighet för att registrera din app. Om du vill registrera ett program måste du vara administratör i Microsoft Entra-klientorganisationen, annars måste programregistreringar aktiveras för icke-administratörsanvändare.

Power BI-tjänst visas inte i Azure-portalen när du registrerar en ny app

Minst en användare måste vara registrerad för Power BI. Om du inte ser Power BI-tjänst visas i API-listan registreras ingen användare för Power BI.

Vad är skillnaden mellan ett programobjekt-ID och ett huvudobjekt-ID?

När du registrerar en Microsoft Entra-app finns det två parametrar som kallas objekt-ID. I det här avsnittet beskrivs syftet med varje parameter och hur du hämtar den.

Programobjekt-ID

Programobjekt-ID:t, även kallat objekt-ID, är det unika ID:t för ditt Microsoft Entra-programobjekt.

Om du vill hämta programobjekt-ID:t går du till din Microsoft Entra-app och kopierar den från översikten.

Skärmbild av Fönstret i Azure-portalen, som visar objekt-ID:t på bladet Översikt i ett Microsoft Entra-program.

Objekt-ID för huvudobjekt

Objekt-ID:t för huvudobjektet, även kallat objekt-ID, är det unika ID:t för tjänstens huvudnamn som är associerat med ditt Microsoft Entra-program.

Du hämtar huvudobjekt-ID:t genom att gå till Din Microsoft Entra-app och från Översikt väljer du applänken i Hanterat program i den lokala katalogen.

Skärmbild av Fönstret i Azure-portalen som visar alternativet Hanterat program i lokal katalog på bladet Översikt i ett Microsoft Entra-program.

I avsnittet Egenskaper kopierar du objekt-ID :t.

Skärmbild av Fönstret i Azure-portalen som visar huvudobjekt-ID:t i egenskapsavsnittet på bladet Översikt i ett Microsoft Entra-program.

Autentisering

Autentiseringen misslyckades med AADSTS70002 eller AADSTS50053

(AADSTS70002: Fel vid validering av autentiseringsuppgifter. AADSTS50053: Du har försökt logga in för många gånger med ett felaktigt användar-ID eller lösenord)

Om du använder Direktautentisering med Power BI Embedded och Microsoft Entra kan du få ett meddelande som det föregående meddelandet när du försöker logga in, eftersom direktautentisering inte är aktiverat.

Du kan aktivera direkt autentisering igen med hjälp av en Microsoft Entra-princip som är begränsad till organisationen eller ett huvudnamn för tjänsten.

Vi rekommenderar att du endast aktiverar den här principen per app.

Om du vill skapa den här principen måste du vara global administratör för katalogen där du skapar principen och tilldelar den. Här är ett exempelskript för att skapa principen och tilldela den till SP för det här programmet:

  1. Installera Microsoft Graph PowerShell SDK.

  2. Kör följande PowerShell-kommandon rad för rad (se till att variabeln $sp inte har fler än ett program som ett resultat).

    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
    

När du har tilldelat principen väntar du ungefär 15–20 sekunder på spridning innan du testar den.

Det går inte att generera token när du tillhandahåller en effektiv identitet

GenerateToken kan misslyckas med den effektiva identitet som tillhandahålls av några olika orsaker:

  • Den semantiska modellen stöder inte effektiv identitet.
  • Användarnamnet angavs inte.
  • Rollen angavs inte.
  • DatasetId inte angavs.
  • Användaren har inte rätt behörigheter.

Prova följande steg för att lösa problemet:

  • Kör hämta datauppsättning. Är egenskapen IsEffectiveIdentityRequired sann?
  • Användarnamn krävs för alla EffectiveIdentity.
  • Om IsEffectiveIdentityRolesRequired är sant krävs roll.
  • DatasetId krävs för alla EffectiveIdentity.
  • För Analysis Services måste huvudanvändaren vara gatewayadministratör.

AADSTS90094: Beviljandet kräver administratörsbehörighet

Symptom:

När en icke-administratörsanvändare försöker logga in på ett program för första gången när de beviljar medgivande får du sedan något av följande fel:

  •   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.
    

    Skärmbild av inloggningsdialogrutan för Azure-portalens fönster, som visar behörighetsfelet Medgivandetest.

En administratörsanvändare kan logga in och bevilja medgivande.

Rotorsak:

Användarmedgivande är inaktiverat för klientorganisationen.

Flera korrigeringar är möjliga:

  • Aktivera användarmedgivande för hela klientorganisationen (alla användare, alla program):
  1. I Azure-portalen går du till Användarinställningar för Microsoft Entra-ID>Användare och grupper.>
  2. Aktivera användare kan godkänna att appar får åtkomst till företagsdata för deras räkning och spara ändringarna.

Skärmbild av Azure-portalen.

  • En administratör kan bevilja behörigheter till programmet – antingen för hela klientorganisationen eller för en specifik användare.

CS1061-fel

Ladda ned Microsoft.IdentityModel.Clients.ActiveDirectory om du får följande fel:

'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?)

Microsoft Entra-token för en annan klientorganisation (gästanvändare)

När du bäddar in för din organisation måste du ange klient-ID:t i parametern authorityUri för att ge Microsoft Entra-gästanvändare åtkomst till ditt innehåll.

  • URL för autentisering i organisationens klientorganisation:

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

  • URL för att autentisera en Microsoft Entra-gästanvändare:

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

Om du vill hitta ditt klientorganisations-ID kan du använda anvisningarna i Hitta Klient-ID:t för Microsoft Entra och det primära domännamnet.

Mer information finns i Making your application multi-tenant (Göra programmet till flera klientorganisationer).

Datakällor

ISV vill ha olika autentiseringsuppgifter för samma datakälla

En datakälla kan ha en enda uppsättning autentiseringsuppgifter för en huvudanvändare. Om du behöver använda olika autentiseringsuppgifter skapar du fler huvudanvändare. Tilldela sedan de olika autentiseringsuppgifterna till var och en av huvudanvändarnas kontexter och bädda in med hjälp av Microsoft Entra-token för den användaren.

Felsöka ditt inbäddade program med IError-objektet

Använd IError-objektet som returneras av felhändelsen från JavaScript SDK för att felsöka ditt program och bättre förstå orsaken till dina fel.

När du har hämtat IError-objektet bör du titta på lämplig gemensam feltabell som passar den inbäddningstyp som du använder. Jämför IError-egenskaperna med de i tabellen och hitta möjliga orsaker till felet.

Vanliga fel vid inbäddning för Power BI-användare

Meddelande Detaljerat meddelande Felkod Möjliga orsaker
TokenExpired Åtkomsttoken har upphört att gälla och skickas på nytt med en ny åtkomsttoken 403 Token har upphört att gälla
PowerBIEntityNotFound Det gick inte att hämta rapporten 404
  • Fel rapport-ID
  • Rapporten finns inte
  • Ogiltiga parametrar powerbiToken-parametern har inte angetts Ej tillämpligt
  • Ingen åtkomsttoken har angetts
  • Inget rapport-ID har angetts
  • LoadReportFailed Det gick inte att initiera – Det gick inte att lösa klustret 403
  • Felaktig åtkomsttoken
  • Inbäddningstypen matchar inte tokentypen
  • PowerBINotAuthorizedException Det gick inte att hämta rapporten 401
  • Fel grupp-ID
  • Obehörig grupp
  • TokenExpired Åtkomsttoken har upphört att gälla och skickas på nytt med en ny åtkomsttoken. Det gick inte att återge ett visuellt rapportobjekt med titeln: visuell rubrik Ej tillämpligt
  • Fråga efter data
  • Token har upphört att gälla
  • Öppna Anslut ionError Det går inte att visa det visuella objektet. Det gick inte att återge ett visuellt rapportobjekt med titeln: visuell rubrik Ej tillämpligt Kapaciteten har pausats eller tagits bort när en rapport som är relaterad till kapaciteten var öppen i en session
    ExplorationContainer_FailedToLoadModel_DefaultDetails Det gick inte att läsa in modellschemat som är associerat med den här rapporten. Kontrollera att du har en anslutning till servern och försök igen. Ej tillämpligt
  • Kapaciteten har pausats
  • Kapaciteten har tagits bort
  • Vanliga fel vid inbäddning för icke-Power BI-användare (med hjälp av en inbäddningstoken)

    Meddelande Detaljerat meddelande Felkod Skäl
    TokenExpired Åtkomsttoken har upphört att gälla och skickas på nytt med en ny åtkomsttoken 403 Token har upphört att gälla
    LoadReportFailed Det gick inte att hämta rapporten 404
  • Fel rapport-ID
  • Rapporten finns inte
  • LoadReportFailed Det gick inte att hämta rapporten 403 Rapport-ID matchar inte token
    LoadReportFailed Det gick inte att hämta rapporten 500 Angivet ID för rapport är inte ett GUID
    Ogiltiga parametrar powerbiToken-parametern har inte angetts Ej tillämpligt
  • Ingen åtkomsttoken har angetts
  • Inget rapport-ID har angetts
  • LoadReportFailed Det gick inte att initiera – Det gick inte att lösa klustret 403 Fel tokentyp eller felaktig token
    PowerBINotAuthorizedException Det gick inte att hämta rapporten 401 Fel/obehörigt grupp-ID
    TokenExpired Åtkomsttoken har upphört att gälla och skickas på nytt med en ny åtkomsttoken. Det gick inte att återge ett visuellt rapportobjekt med titeln: visuell rubrik Ej tillämpligt
  • Fråga efter data
  • Token har upphört att gälla
  • Öppna Anslut ionError Det går inte att visa det visuella objektet. Det gick inte att återge ett visuellt rapportobjekt med titeln: visuell rubrik Ej tillämpligt Kapaciteten har pausats eller tagits bort när en rapport som är relaterad till kapaciteten var öppen i en session
    ExplorationContainer_FailedToLoadModel_DefaultDetails Det gick inte att läsa in modellschemat som är associerat med den här rapporten. Kontrollera att du har en anslutning till servern och försök igen. Ej tillämpligt
  • Kapaciteten har pausats
  • Kapaciteten har tagits bort
  • Det går inte att hämta rapporten – fel 401 – lösa sig själva

    I scenariot med att användaren äger data får användarna ibland ett 401-fel som löser sig när de har åtkomst till Power BI-portalen. När 401-felet inträffar lägger du till anropet RefreshUser-behörigheter i appen enligt beskrivningen i Uppdatera användarbehörigheter.

    Semantiska modeller

    Hantera vilken del av data som användarna kan se

    Alla användare med läsbehörighet för en semantisk modell kan se hela schemat (tabeller, kolumner och mått) och alla data. Du kan inte styra visningsbehörigheter för rådata och aggregerade data separat i samma semantiska modell.

    Om du vill hantera vilken del av data som användarna kan visa använder du någon av följande metoder:

    • Filtrering på radnivå med power BI-säkerhet på radnivå (RLS).

    • Säkerhet på objektnivå (OLS).

    • Avgränsa data i olika semantiska modeller. Du kan till exempel skapa en semantisk modell som bara innehåller aggregerade data och ge användarna åtkomst till endast den semantiska modellen.

    Innehållsåtergivning

    Information om hur du löser renderingsproblem i inbäddade Power BI-objekt (till exempel rapporter och instrumentpaneler) finns i det här avsnittet.

    Kontrollera att Power BI-objektet läses in i Power BI-tjänst

    Om du vill utesluta problem med ditt program eller api:er för inbäddning kontrollerar du att objektet kan visas i Power BI-tjänst (powerbi.com).

    Kontrollera att Power BI-objektet läses in i Den inbäddade Analyslekplatsen för Power BI

    Om du vill utesluta problem med ditt program kontrollerar du att Power BI-objektet kan visas i Den inbäddade Analyslekplatsen för Power BI.

    Kontrollera att din åtkomsttoken inte upphör att gälla

    I säkerhetssyfte har åtkomsttoken (en Microsoft Entra-token eller en inbäddningstoken) en begränsad livslängd. Du bör ständigt övervaka din åtkomsttoken och uppdatera den om det behövs. Mer information finns i Uppdatera åtkomsttoken.

    Prestanda

    För att få bästa möjliga inbäddade innehåll rekommenderar vi att du följer metodtipsen för Inbäddad Power BI-analys.

    Installationsverktyg för inbäddning

    Du kan gå igenom konfigurationsverktyget för inbäddning för att snabbt ladda ned ett exempelprogram. Sedan kan du jämföra ditt program med exemplet.

    Förutsättningar

    Kontrollera att du har alla nödvändiga förutsättningar innan du använder konfigurationsverktyget för inbäddning. Du behöver ett Power BI Pro-konto och en Microsoft Azure-prenumeration .

    Vanliga problem

    Några vanliga problem som kan uppstå när du testar med konfigurationsverktyget För inbäddning är:

    Använda exempelprogrammet Bädda in för dina kunder

    Om du arbetar med upplevelsen Bädda in för dina kunder kan du spara och packa upp PowerBI-Developer-Samples.zip-filen. Öppna sedan mappen PowerBI-Developer-Samples-master\App Owns Data och kör filen PowerBIEmbedded_AppOwnsData.sln .

    • När du väljer Bevilja behörigheter (steget Bevilja behörigheter) får du följande fel:
    AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
    

    Lösningen är att stänga popup-fönstret, vänta några sekunder och försöka igen. Du kan behöva upprepa den här åtgärden några gånger. Ett tidsintervall gör att problemet från att slutföra programregistreringsprocessen till när det är tillgängligt för externa API:er.

    • Följande felmeddelande visas när du kör exempelappen:
    Password is empty. Please fill password of Power BI username in web.config.
    

    Det här felet beror på att det enda värde som inte matas in i exempelprogrammet är ditt användarlösenord. Öppna filen Web.config i lösningen och fyll i pbiPassword fältet med användarens lösenord.

    • Om du får felet:
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Du måste använda ett Microsoft Entra-konto som inte har MFA aktiverat.

    Använda Bädda in för organisationens exempelprogram

    Om du arbetar med Bädda in för din organisation sparar du och packar upp filen PowerBI-Developer-Samples.zip . Öppna sedan mappen PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app och kör filen pbi-saas-embed-report.sln .

    • När du kör exempelappen Bädda in för din organisation får du följande fel:
    AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
    

    Det här felet beror på att den omdirigerings-URL som angetts för webbserverprogrammet skiljer sig från exemplets URL. Om du vill registrera exempelprogrammet använder https://localhost:13526/ du som omdirigerings-URL.

    Om du vill redigera det registrerade programmet uppdaterar du det Microsoft Entra-registrerade programmet så att programmet kan ge åtkomst till webb-API:erna.

    Om du vill redigera din Power BI-användarprofil eller dina data kan du lära dig hur du redigerar dina Power BI-data.

    • Om du får felet:
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Du måste använda ett Microsoft Entra-konto som inte har MFA aktiverat.

    Mer information finns i Vanliga frågor och svar om Power BI Embedded.

    Om du vill ha mer hjälp kontaktar du supporten eller skapar en supportbegäran via Azure-portalen och anger de felmeddelanden du får.

    Har du fler frågor? Fråga Power BI Community