Résoudre les problèmes de votre application incorporée

Cet article décrit certains problèmes courants que vous pouvez rencontrer lors de l’incorporation de contenu à partir de Power BI.

Outils de résolution des problèmes

Suivi Fiddler

Fiddler est un outil gratuit de Telerik qui surveille le trafic HTTP. Vous pouvez voir le trafic au niveau des API Power BI depuis l’ordinateur client. Cet outil peut indiquer des erreurs et d’autres informations connexes.

Capture d’écran de la fenêtre de sortie de l’outil Fiddler, qui montre le trafic HTTP API Power BI.

F12 dans le navigateur pour le débogage frontal

La touche F12 lance la fenêtre de développeur dans votre navigateur. Cet outil vous permet d’examiner le trafic réseau et de voir d’autres informations précieuses.

Capture d’écran de l’onglet Réseau de la fenêtre développeur du navigateur web, qui montre le trafic réseau.

Extraire les détails de l’erreur à partir de la réponse de Power BI

Cet extrait de code montre comment extraire les détails de l’erreur d’une exception 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;
}

Nous vous recommandons de journaliser les ID de requête (et les détails des erreurs à des fins de dépannage). Indiquez l’ID de la requête lorsque vous contactez le support Microsoft.

Inscriptions des applications

Échec de l’inscription des applications

Les messages d’erreur dans le portail Azure ou la page d’inscription d’application Power BI vous avertissent si vous n’avez pas suffisamment de privilèges pour inscrire votre application. Pour inscrire une application, vous devez être administrateur du locataire Microsoft Entra, ou des inscriptions d’applications doivent être activées pour les utilisateurs non-administrateurs.

Le service Power BI n’apparaît pas dans le portail Azure lors de l’inscription d’une nouvelle application

Au moins un utilisateur doit être inscrit à Power BI. Si vous ne voyez pas Service Power BI dans la liste des API, aucun utilisateur n’est inscrit à Power BI.

Quelle est la différence entre un ID d’objet d’application et un ID d’objet principal ?

Lorsque vous inscrivez une application Microsoft Entra, il existe deux paramètres appelés ID d’objet. Cette section explique l’objectif de chaque paramètre et comment l’obtenir.

ID de l’objet d’application

L’ID d’objet d’application, également appelé simplement ID d’objet, est l’ID unique de votre objet d’application Microsoft Entra.

Pour accéder à l’ID d’objet d’application, accédez à votre application Microsoft Entra, puis copiez-la à partir de la Vue d’ensemble.

Capture d’écran de la fenêtre Portail Azure, qui montre l’ID d’objet dans le panneau Vue d’ensemble d’une application Microsoft Entra.

ID d’objet principal

L’ID d’objet principal, également appelé simplement ID d’objet, est l’ID unique de l’objet principal de service associé à votre application Microsoft Entra.

Pour accéder à votre ID d’objet principal, accédez à votre application Microsoft Entra, puis dans la Vue d’ensemble, sélectionnez le lien de l’application dans Application managée dans le répertoire local.

Capture d’écran de la fenêtre Portail Azure, qui montre l’option Application gérée dans le répertoire local dans le panneau Vue d’ensemble d’une application Microsoft Entra.

Dans la section Propriétés, copiez l’ID d’objet.

Capture d’écran de la fenêtre Portail Azure, qui montre l’ID d’objet principal dans la section Propriétés du panneau Vue d’ensemble d’une application Microsoft Entra.

Authentification

Échec de l’authentification avec AADSTS70002 ou AADSTS50053

(AADSTS70002 : Erreur de validation des informations d’identification. AADSTS50053 : Vous avez essayé de vous connecter un trop grand nombre de fois avec un ID d’utilisateur ou un mot de passe incorrect)

Si vous utilisez Power BI Embedded et l’authentification directe Microsoft Entra, vous pouvez recevoir un message comme celui ci-dessus quand vous essayez de vous connecter, car l’authentification directe n’est plus utilisée.

Vous pouvez réactiver l’authentification directe en utilisant une stratégie Microsoft Entra dont l’étendue peut être limitée à l’organisation ou à un principal de service.

Nous vous recommandons d’activer cette stratégie uniquement en fonction de chaque application.

Pour créer cette stratégie, vous devez être administrateur général de l’annuaire dans lequel vous créez et affectez la stratégie. Voici un exemple de script qui vous montre comment créer la stratégie et l’affecter au principal du service de l’application :

  1. Installer le Kit de développement logiciel (SDK) Microsoft Graph PowerShell.

  2. Exécutez les commandes PowerShell ci-dessous ligne par ligne (en veillant à ce que la variable $sp n’ait pas plus d’une application en résultat).

    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
    

Après avoir affecté la stratégie et avant d’effectuer un test, attendez environ 15 à 20 secondes, le temps qu’elle se propage.

La génération du jeton échoue lors de la fourniture de l’identité effective

GenerateToken peut échouer, quand une identité effective est fournie, pour différentes raisons.

  • Le modèle sémantique ne prend pas en charge l’identité effective.
  • Le nom d’utilisateur n’a pas été fourni.
  • Le rôle n’a pas été fourni.
  • DatasetId n’a pas été fourni.
  • L’utilisateur ne dispose des autorisations appropriées.

Pour déterminer le problème, essayez les étapes suivantes :

  • Exécutez get jeu de données. La propriété IsEffectiveIdentityRequired est-elle true ?
  • Nom d’utilisateur est nécessaire pour n’importe quel EffectiveIdentity.
  • Si IsEffectiveIdentityRolesRequired a la valeur true, le rôle est requis.
  • DatasetId est requis pour tout EffectiveIdentity.
  • Pour Analysis Services, l’utilisateur principal doit être un administrateur de passerelle.

AADSTS90094 : L’octroi nécessite une autorisation de l’administrateur

Symptômes :

Quand un utilisateur non-administrateur tente de se connecter à une application pour la première fois tout en octroyant un consentement, et obtient une des erreurs suivantes :

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

    Capture d’écran de la boîte de dialogue de connexion de la fenêtre Portail Azure, qui montre l’erreur d’autorisation de Test de consentement.

Un utilisateur administrateur peut se connecter et octroyer un consentement.

Cause racine :

Le consentement de l’utilisateur est désactivé pour le locataire.

Plusieurs solutions sont possibles :

  • Activez le consentement de l’utilisateur pour l’ensemble du locataire (tous les utilisateurs, toutes les applications) :
  1. Sur le portail Azure, accédez à Microsoft Entra ID>Utilisateurs et groupes>Paramètres utilisateur.
  2. Activez Les utilisateurs peuvent autoriser les applications à accéder aux données de l’entreprise en leur nom, puis enregistrez les modifications.

Capture d’écran du portail Azure.

  • Un administrateur peut octroyer des autorisations d’accès à l’application (pour l’ensemble du locataire ou pour un utilisateur spécifique).

Erreur CS1061

Téléchargez Microsoft.IdentityModel.Clients.ActiveDirectory si vous rencontrez l’erreur suivante :

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

Jeton Microsoft Entra pour un locataire différent (utilisateur invité)

Quand vous incorporez pour votre organisation, vous devez spécifier l’ID de locataire dans le paramètre authorityUri pour autoriser les utilisateurs invités Microsoft Entra à accéder à votre contenu.

  • URL pour l’authentification dans le locataire de votre organisation :

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

  • URL pour l’authentification d’un utilisateur Microsoft Entra invité :

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

Pour trouver votre ID de locataire, vous pouvez utiliser les instructions de la procédure Rechercher l’ID de locataire Microsoft Entra et le nom de domaine principal.

Pour plus d’informations, consultez Rendre votre application multilocataire.

Sources de données

L’éditeur de logiciels indépendant souhaite disposer d’informations d’identification différentes pour la même source de données

Une source de données peut avoir un ensemble unique d’informations d’identification pour un même utilisateur principal. Si vous avez besoin d’utiliser des informations d’identification différentes, créez des utilisateurs principaux supplémentaires. Ensuite, affectez différentes informations d’identification dans chaque contexte d’utilisateur principal à gérer, et effectuez l’incorporation à l’aide du jeton Microsoft Entra de cet utilisateur.

Résoudre les problèmes de votre application incorporée avec l’objet IError

Utilisez l’objet IError retourné par l’événement erreur à partir du kit de développement logiciel (SDK) JavaScript pour déboguer votre application et mieux comprendre la cause de vos erreurs.

Après l’acquisition de l’objet IError, vous devez examiner la table d’erreurs courantes appropriée qui correspond au type d’incorporation que vous utilisez. Comparez les propriétés IError avec celles de la table et recherchez la ou les raisons possibles de l’échec.

Erreurs courantes lors de l’incorporation pour les utilisateurs de Power BI

Message Message détaillé Code d’erreur Raison(s) possible(s)
TokenExpired Le jeton d’accès a expiré, soumettez à nouveau avec un nouveau jeton d’accès 403 Jeton arrivé à expiration
PowerBIEntityNotFound Réception d’une notification d’échec du rapport 404
  • ID du rapport erroné
  • Le rapport n’existe pas
  • Paramètres non valides Paramètre powerbiToken non spécifié S.O.
  • Aucun jeton d’accès fourni
  • Aucun ID de rapport fourni
  • LoadReportFailed Échec de l’initialisation : le cluster n’a pas pu être résolu 403
  • Mauvais jeton d’accès
  • Le type d’incorporation ne correspond pas au type de jeton
  • PowerBINotAuthorizedException Réception d’une notification d’échec du rapport 401
  • ID de groupe incorrect
  • Groupe non autorisé
  • TokenExpired Le jeton d’accès a expiré, soumettez à nouveau avec un nouveau jeton d’accès. Impossible de rendre un visuel de rapport intitulé : titre du visuel S.O.
  • Rechercher des données
  • Jeton arrivé à expiration
  • OpenConnectionError Impossible d'afficher l'élément visuel. Impossible de rendre un visuel de rapport intitulé : titre du visuel N/A Capacité suspendue ou supprimée tant qu’un rapport sur la capacité était ouvert dans une session
    ExplorationContainer_FailedToLoadModel_DefaultDetails Impossible de charger le schéma de modèle associé à ce rapport. Assurez-vous que vous disposez d’une connexion au serveur et réessayez. S.O.
  • Capacité suspendue
  • Capacité supprimée
  • Erreurs courantes lors de l’incorporation pour d’autres utilisateurs que ceux de Power BI (avec un jeton d’incorporation)

    Message Message détaillé Code d’erreur Raison(s)
    TokenExpired Le jeton d’accès a expiré, soumettez à nouveau avec un nouveau jeton d’accès 403 Jeton arrivé à expiration
    LoadReportFailed Réception d’une notification d’échec du rapport 404
  • ID du rapport erroné
  • Le rapport n’existe pas
  • LoadReportFailed Réception d’une notification d’échec du rapport 403 L’ID du rapport ne correspond pas au jeton
    LoadReportFailed Réception d’une notification d’échec du rapport 500 Il ressort du rapport que l’ID n’est pas un GUID
    Paramètres non valides Paramètre powerbiToken non spécifié S.O.
  • Aucun jeton d’accès fourni
  • Aucun ID de rapport fourni
  • LoadReportFailed Échec de l’initialisation : le cluster n’a pas pu être résolu 403 Type de jeton incorrect ou jeton incorrect
    PowerBINotAuthorizedException Réception d’une notification d’échec du rapport 401 ID de groupe incorrect/non autorisé
    TokenExpired Le jeton d’accès a expiré, soumettez à nouveau avec un nouveau jeton d’accès. Impossible de rendre un visuel de rapport intitulé : titre du visuel S.O.
  • Rechercher des données
  • Jeton arrivé à expiration
  • OpenConnectionError Impossible d'afficher l'élément visuel. Impossible de rendre un visuel de rapport intitulé : titre du visuel N/A Capacité suspendue ou supprimée tant qu’un rapport sur la capacité était ouvert dans une session
    ExplorationContainer_FailedToLoadModel_DefaultDetails Impossible de charger le schéma de modèle associé à ce rapport. Assurez-vous que vous disposez d’une connexion au serveur et réessayez. S.O.
  • Capacité suspendue
  • Capacité supprimée
  • Échec de l’obtention du rapport - erreur 401 - se résout d’elle-même

    Parfois, les utilisateurs du scénario l’utilisateur a la propriété des données reçoivent une erreur 401 qui se résout d’elle-même après avoir accédé au portail Power BI. En cas d’erreur 401, ajoutez l’appel RefreshUser Permissions dans l’application, comme expliqué dans Mettre à jour les autorisations de l’utilisateur.

    Modèles sémantiques

    Gérer la partie des données que vos utilisateurs peuvent voir

    Tout utilisateur disposant d’autorisations de lecture pour un modèle sémantique peut voir le schéma entier (les tables, les colonnes et les mesures) et toutes les données. Vous ne pouvez pas contrôler les autorisations de visualisation sur les données brutes et agrégées séparément dans le même modèle sémantique.

    Pour gérer la partie des données que vos utilisateurs peuvent visualiser, utilisez une des méthodes suivantes :

    • Filtrage au niveau des lignes en utilisant la sécurité au niveau des lignes (RLS) de Power BI.

    • Sécurité au niveau des objets (OLS).

    • Séparez les données en différents modèles sémantiques. Par exemple, vous pouvez créer un modèle sémantique qui contient seulement des données agrégées et autoriser les utilisateurs à accéder seulement à ce modèle sémantique.

    Restitution du contenu

    Pour résoudre les problèmes de rendu dans des éléments Power BI incorporés (tels que des rapports et des tableaux de bord), consultez cette section.

    Vérifier que l’élément Power BI se charge dans le service Power BI

    Pour éliminer les problèmes liés à votre application ou aux API d’incorporation, vérifiez que l’élément peut être affiché dans le service Power BI (powerbi.com).

    Vérifier que l’élément Power BI se charge dans le laboratoire d’analytique incorporée Power BI

    Pour éliminer les problèmes liés à votre application, vérifiez que l’élément Power BI peut être affiché dans le laboratoire d’analytique incorporée Power BI.

    Vérifier que votre jeton d’accès n’a pas expiré

    Pour des raisons de sécurité, les jetons d’accès (jeton Microsoft Entra ou jeton intégré) ont une durée de vie limitée. Vous devez surveiller en permanence votre jeton d’accès et l’actualiser si nécessaire. Pour plus d'informations, consultez Actualiser le jeton d'accès.

    Performances

    Pour obtenir le contenu incorporé le plus performant, nous vous recommandons de suivre les Meilleures pratiques d’analytique incorporée Power BI.

    Outil de configuration de l’incorporation

    Vous pouvez passer par l’outil de configuration de l’incorporation pour télécharger rapidement un exemple d’application. Vous pouvez ensuite comparer votre application à l’exemple.

    Prérequis

    Vérifiez que vous disposez de tous les prérequis appropriés avant d’utiliser l’outil de configuration de l’incorporation. Vous avez besoin d’un compte Power BI Pro et d’un abonnement Microsoft Azure.

    Problèmes courants

    Voici quelques problèmes courants que vous pouvez rencontrer lors du test avec l’outil de configuration de l’incorporation :

    Utilisation de l’exemple d’application Embed for your customers (Incorporer pour vos clients)

    Si vous travaillez avec l’expérience Incorporer pour vos clients, enregistrez et décompressez le fichier PowerBI-Developer-Samples.zip. Ensuite, ouvrez le dossier PowerBI-Developer-Samples-master\App Owns Data et exécutez le fichier PowerBIEmbedded_AppOwnsData.sln.

    • Quand vous sélectionnez Accorder des autorisations (à l’étape Accorder des autorisations), vous obtenez l’erreur suivante :
    AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
    

    La solution consiste à fermer la fenêtre contextuelle, à attendre quelques secondes et à recommencer l’opération. Il peut être nécessaire de répéter cette opération quelques fois. Un intervalle de temps provoque ce problème : le processus d’inscription de l’application ne se termine pas quand il est disponible pour des API externes.

    • Le message d’erreur suivant s’affiche lors de l’exécution de l’exemple d’application :
    Password is empty. Please fill password of Power BI username in web.config.
    

    Cette erreur se produit, car la seule valeur qui n’est pas injectée dans l’exemple d’application est votre mot de passe utilisateur. Ouvrez le fichier Web.config dans la solution et renseignez le champ pbiPassword avec votre mot de passe utilisateur.

    • Si vous obtenez cette erreur :
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Vous devez utiliser un compte Microsoft Entra pour lequel l’authentification multifacteur n’est pas activée.

    Utilisation de l’exemple d’application Embed for your organization (Incorporer pour votre organisation)

    Si vous travaillez avec l’expérience Incorporer pour votre organisation, enregistrez et décompressez le fichier PowerBI-Developer-Samples.zip. Ensuite, ouvrez le dossier PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app et exécutez le fichier pbi-saas-embed-report.sln.

    • Quand vous exécutez l’exemple d’application Embed for your organization, vous obtenez l’erreur suivante :
    AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
    

    La raison de cette erreur est que l’URL de redirection spécifiée pour l’application de serveur web est différente de l’URL de l’exemple. Si vous voulez inscrire l’exemple d’application, utilisez https://localhost:13526/ comme URL de redirection.

    Si vous souhaitez modifier l’application inscrite, mettez à jour l’application inscrite auprès de Microsoft Entra pour qu’elle permettre l’accès aux API web.

    Si vous souhaitez modifier votre profil ou vos données utilisateur Power BI, découvrez comment modifier vos données Power BI.

    • Si vous obtenez cette erreur :
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Vous devez utiliser un compte Microsoft Entra pour lequel l’authentification multifacteur n’est pas activée.

    Pour plus d’informations, consultez le FAQ sur Power BI Embedded.

    Pour obtenir de l’aide, contactez le support ou créez un ticket de support via le portail Azure, et fournissez les messages d’erreur que vous recevez.

    D’autres questions ? Poser des questions à la communauté Power BI