Incorporer un rapport avec une authentification par jetons (SSO)

S’APPLIQUE À : L’application possède des données L’utilisateur possède des données

L’identité basée sur les jetons permet à un éditeur de logiciels indépendants d’utiliser un jeton d’accès Microsoft Entra pour transmettre l’identité d’un client à une base de données Azure SQL gérée dans le locataire du client.

Les éditeurs de logiciels indépendants (ISV) dont les clients stockent et gèrent leurs données dans Azure SQL Database peuvent sécuriser ces données dans leur espace de locataire lorsqu’ils intègrent Power BI Embedded dans l’application ISV.

Lors de la génération du jeton intégré, spécifiez l’identité de l’utilisateur dans Azure SQL en transmettant le jeton d’accès Microsoft Entra de cet utilisateur pour le serveur Azure SQL. Le jeton d’accès est ensuite utilisé pour extraire uniquement les données pertinentes pour cet utilisateur à partir d’Azure SQL pour cette session spécifique.

Dessin schématique illustrant un fournisseur de logiciels indépendant (ISV) transmettant l’identité effective au locataire SQL et le client renvoyant un jeton d'intégration.

Important

Limites du modèle SSO « App-owns-data » :

  • Dans les scénarios app-owns-data (principal de service ou authentification utilisateur maître), l’authentification unique pour les sources de données DirectQuery est prise en charge uniquement avec Azure SQL Database.
  • Lors de la génération d’un jeton incorporé avec l’authentification unique, vous devez fournir une IdentityBlob pour chaque source de données avec l’authentification unique activée. L’omission de IdentityBlob entraîne l’échec de la génération de jetons ou de l’exécution de requête.

Configurer l’identité basée sur les jetons

L'identité basée sur les jetons fonctionne uniquement pour les modèles DirectQuery sur une capacité connectée à une base de données Azure SQL qui est configurée pour autoriser l'authentification Microsoft Entra. La source de données du modèle sémantique doit être configurée pour utiliser les informations d’identification OAuth2 des utilisateurs finaux, en vue d’utiliser l’identité basée sur les jetons. En savoir plus sur l’authentification Microsoft Entra pour Azure SQL Database.

Avant de configurer l’identité basée sur un jeton, vérifiez :

  • Votre source de données DirectQuery est Azure SQL Database (la seule source de données d’authentification unique prise en charge pour les scénarios app-owns-data).
  • Le Azure SQL Database est configuré pour l’authentification Microsoft Entra.
  • Vous disposez du jeton d'accès Microsoft Entra de l'utilisateur à transmettre au serveur Azure SQL en tant que IdentityBlob.
  1. Dans le portail Power BI, sélectionnez modèle sémantique > Plus d’options (trois points) > Paramètres > Informations d’identification de la source de données > Modifier les informations d’identification.

    Capture d’écran de l’option des paramètres de jeu de données dans le portal Power BI.

  2. Cochez la case de l’option OAuth2.

    Capture d’écran de la configuration Azure SQL Server.

Générer un jeton d'identité

Pour créer un jeton d’accès pour Azure SQL, l’application doit disposer de la permission déléguée Accéder à Azure SQL Database et Data Warehouse à l’API Azure SQL Database pour la configuration de l’inscription d’application Microsoft Entra dans le portail Azure.

Capture d’écran des paramètres de configuration d’inscription d’application Microsoft Entra dans le Portail Azure. Authentifier et acquérir un jeton pour l’utilisateur à partir du point de terminaison Azure AD v2 pour l’étendue suivante : https://database.windows.net/.default

Consultez les exemples de code MSAL suivants pour obtenir de l’aide :

Générer un jeton d’incorporation

Pour intégrer un rapport avec une identité basée sur un jeton, générez un jeton d'incorporation qui contient l'identité de base du jeton de l'utilisateur ISV souhaité. Les exemples suivants permettent de générer des jetons d'incorporation pour différents scénarios.

Note

Vous devez inclure une entrée datasourceIdentities avec une identityBlob valide pour chaque source de données Azure SQL sur laquelle l'authentification unique est activée. Si une source de données prenant en charge l’authentification unique est dépourvue de son identityBlob, l'appel de génération du jeton d'intégration échouera ou l'exécution de la requête renverra une erreur.

{
  "datasets": [
    {
      "id": "66ba5010-xxxx-xxxx-xxxx-f2bf0125abeb",
    }
  ],
  "reports": [
    {
      "allowEdit": false,
      "id": "9e6da541-xxxx-xxxx-xxxx-7d9442827cce"
    }
  ],
  "datasourceIdentities": [
    {
      "identityBlob": "eyJ…",
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "YourServerName.database.windows.net",
            "database": "YourDataBaseName"
          }
        }
      ]
    }
  ]
}

L'exemple suivant montre un rapport Power BI intégré avec authentification unique et RLS appliqués au jeu de données :

Capture d’écran d’un rapport Power BI intégré avec l’authentification unique (SSO) et la sécurité au niveau des lignes (RLS) appliqués au jeu de données.