Partager via


Embed Token - Generate Token

Génère un jeton incorporé pour plusieurs rapports, jeux de données et espaces de travail cibles.

  • Les rapports et les jeux de données n’ont pas besoin d’être associés.
  • Vous pouvez lier un rapport à un jeu de données pendant l’incorporation.
  • Vous pouvez uniquement créer un rapport dans les espaces de travail spécifiés par le paramètre targetWorkspaces.

Important

Cet appel d’API s’applique uniquement à l’incorporation pour vos clients scénario. Pour en savoir plus sur l’utilisation de cette API, consultez Considérations relatives à la génération d’un jeton incorporé.

Autorisations

Étendue requise

Toutes les conditions suivantes, sauf si une exigence ne s’applique pas :

  • Content.Create, obligatoire si un espace de travail cible est spécifié dans GenerateTokenRequestV2.
  • Report.ReadWrite.All ou Report.Read.All, obligatoire si un rapport est spécifié dans GenerateTokenRequestV2.
  • Report.ReadWrite.All, obligatoire si l’indicateur allowEdit est spécifié pour au moins un rapport dans GenerateTokenRequestV2.
  • Dataset.ReadWrite.All ou Dataset.Read.All

Limites

  • Vous pouvez uniquement créer un rapport dans les espaces de travail spécifiés par le paramètre targetWorkspaces.
  • Tous les rapports et jeux de données doivent résider dans un espace de travail V2.
  • Tous les espaces de travail cibles doivent être espaces de travail V2.
  • Maximum 50 rapports.
  • 50 jeux de données maximum.
  • 50 espaces de travail cibles maximum.
  • Pour les rapports de connexion dynamique locale Azure Analysis Services ou Analysis Services, la génération d’un jeton incorporé avec la sécurité au niveau des lignes (RLS) peut ne pas fonctionner pendant plusieurs minutes après une rebinée.

POST https://api.powerbi.com/v1.0/myorg/GenerateToken

Corps de la demande

Nom Type Description
datasets

GenerateTokenRequestV2Dataset[]

Liste des jeux de données

datasourceIdentities

DatasourceIdentity[]

Liste des identités à utiliser lors de la connexion à des sources de données avec Sign-On l’authentification unique (SSO) activée.

identities

EffectiveIdentity[]

Liste des identités à utiliser pour les règles de sécurité au niveau des lignes

lifetimeInMinutes

integer

Durée de vie maximale du jeton en minutes, à partir du moment où il a été généré. Peut être utilisé pour raccourcir le délai d’expiration du jeton, mais pas pour l’étendre. La valeur doit être un entier positif. Zéro (0) équivaut à nullet définit l’heure d’expiration par défaut.

reports

GenerateTokenRequestV2Report[]

Liste des rapports

targetWorkspaces

GenerateTokenRequestV2TargetWorkspace[]

Liste des espaces de travail auxquels le jeton incorporé permet d’enregistrer dans

Réponses

Nom Type Description
200 OK

EmbedToken

D’ACCORD

Exemples

Example of generating an embed token for a dataset and two reports example. Only one of the reports can be edited.
Example of generating an embed token for a paginated report which has a Power BI dataset as a datasource. The ID of the dataset must be specified in the request. The report and dataset can each have its own identity
Example of generating an embed token for a paginated report with a data source identity
Example of generating an embed token for a paginated report with multiple data source identities and a single identity blob
Example of generating an embed token for a paginated report with multiple data source identities and multiple identity blobs
Example of generating an embed token for a Power BI report with a dataset which is connected with DirectQuery to another Power BI dataset. All related dataset IDs must be specified in the request with 'xmlaPermissions' set to 'ReadOnly'. IdentityBlobs for all SSO-enabled data sources must be provided in the 'datasourceIdentities' array
Example of generating an embed token for a Power BI report with a paginated visual. The paginated report ID ('...4850') of the paginated visual must be included in the 'reports' section of the request.
Example of generating an embed token for two datasets with RLS identities and a single report with read-only permissions. The embed token lets you view the report, which is dynamically bound to two different datasets.
Example of generating an embed token that expires no later than ten minutes from the API call

Example of generating an embed token for a dataset and two reports example. Only one of the reports can be edited.

Exemple de requête

POST https://api.powerbi.com/v1.0/myorg/GenerateToken
{
  "datasets": [
    {
      "id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229"
    }
  ],
  "reports": [
    {
      "allowEdit": true,
      "id": "b2e49b01-2356-4456-bfb9-3f4c2bc4ddbd"
    },
    {
      "id": "759908bb-ead8-4a43-9645-7ffbf921c68d"
    }
  ]
}

Exemple de réponse

{
  "token": "H4sI....AAA=",
  "tokenId": "49ae3742-54c0-4c29-af52-619ff93b5c80",
  "expiration": "2018-07-29T17:58:19Z"
}

Example of generating an embed token for a paginated report which has a Power BI dataset as a datasource. The ID of the dataset must be specified in the request. The report and dataset can each have its own identity

Exemple de requête

POST https://api.powerbi.com/v1.0/myorg/GenerateToken
{
  "datasets": [
    {
      "id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
      "xmlaPermissions": "ReadOnly"
    }
  ],
  "reports": [
    {
      "id": "b2e49b01-2356-4456-bfb9-3f4c2bc4ddbd"
    }
  ],
  "identities": [
    {
      "username": "john@contoso.com",
      "roles": [
        "sales"
      ],
      "datasets": [
        "cfafbeb1-8037-4d0c-896e-a46fb27ff229"
      ]
    },
    {
      "username": "john@contoso.com",
      "reports": [
        "b2e49b01-2356-4456-bfb9-3f4c2bc4ddbd"
      ]
    }
  ]
}

Exemple de réponse

{
  "token": "H4sI....AAA=",
  "tokenId": "49ae3742-54c0-4c29-af52-619ff93b5c80",
  "expiration": "2028-07-29T17:58:19Z"
}

Example of generating an embed token for a paginated report with a data source identity

Exemple de requête

POST https://api.powerbi.com/v1.0/myorg/GenerateToken
{
  "reports": [
    {
      "id": "b2e49b01-2356-4456-bfb9-3f4c2bc4ddbd"
    }
  ],
  "datasourceIdentities": [
    {
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "New-Sql-Server",
            "database": "New-Sql-Database"
          }
        }
      ],
      "identityBlob": "eyJ0eX....AAA="
    }
  ]
}

Exemple de réponse

{
  "token": "H4sI....AAA=",
  "tokenId": "49ae3742-54c0-4c29-af52-619ff93b5c80",
  "expiration": "2028-07-29T17:58:19Z"
}

Example of generating an embed token for a paginated report with multiple data source identities and a single identity blob

Exemple de requête

POST https://api.powerbi.com/v1.0/myorg/GenerateToken
{
  "reports": [
    {
      "id": "b2e49b01-2356-4456-bfb9-3f4c2bc4ddbd"
    }
  ],
  "datasourceIdentities": [
    {
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "New-Sql-Server",
            "database": "New-Sql-Database"
          }
        },
        {
          "datasourceType": "MySql",
          "connectionDetails": {
            "server": "New-MySql-Server",
            "database": "New-MySql-Database"
          }
        }
      ],
      "identityBlob": "eyJ0eX....AAA="
    }
  ]
}

Exemple de réponse

{
  "token": "H4sI....AAA=",
  "tokenId": "49ae3742-54c0-4c29-af52-619ff93b5c80",
  "expiration": "2028-07-29T17:58:19Z"
}

Example of generating an embed token for a paginated report with multiple data source identities and multiple identity blobs

Exemple de requête

POST https://api.powerbi.com/v1.0/myorg/GenerateToken
{
  "reports": [
    {
      "id": "b2e49b01-2356-4456-bfb9-3f4c2bc4ddbd"
    }
  ],
  "datasourceIdentities": [
    {
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "New-Sql-Server",
            "database": "New-Sql-Database"
          }
        }
      ],
      "identityBlob": "eyJ0eX....AAA="
    },
    {
      "datasources": [
        {
          "datasourceType": "MySql",
          "connectionDetails": {
            "server": "New-MySql-Server",
            "database": "New-MySql-Database"
          }
        }
      ],
      "identityBlob": "eyJ0dW....AAA="
    }
  ]
}

Exemple de réponse

{
  "token": "H4sI....AAA=",
  "tokenId": "49ae3742-54c0-4c29-af52-619ff93b5c80",
  "expiration": "2028-07-29T17:58:19Z"
}

Exemple de requête

POST https://api.powerbi.com/v1.0/myorg/GenerateToken
{
  "datasets": [
    {
      "id": "b2e49b01-2356-4456-bfb9-3f4c2bc4ddbd",
      "xmlaPermissions": "ReadOnly"
    },
    {
      "id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
      "xmlaPermissions": "ReadOnly"
    }
  ],
  "reports": [
    {
      "id": "f904e89a-7ebe-4aa0-8647-e409063b4850"
    }
  ],
  "datasourceIdentities": [
    {
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "Best-Sql-Server",
            "database": "Database3"
          }
        }
      ],
      "identityBlob": "eyJ0eX....AAA="
    }
  ]
}

Exemple de réponse

{
  "token": "H4sI....AAA=",
  "tokenId": "ab4d49ae-c054-4c29-af52-93b5c80619ff",
  "expiration": "2022-06-10T12:41:11Z"
}

Example of generating an embed token for a Power BI report with a paginated visual. The paginated report ID ('...4850') of the paginated visual must be included in the 'reports' section of the request.

Exemple de requête

POST https://api.powerbi.com/v1.0/myorg/GenerateToken
{
  "datasets": [
    {
      "id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229"
    }
  ],
  "reports": [
    {
      "id": "b2e49b01-2356-4456-bfb9-3f4c2bc4ddbd"
    },
    {
      "id": "f904e89a-7ebe-4aa0-8647-e409063b4850"
    }
  ]
}

Exemple de réponse

{
  "token": "H4sI....AAA=",
  "tokenId": "49ae3742-54c0-4c29-af52-619ff93b5c80",
  "expiration": "2018-07-29T17:58:19Z"
}

Example of generating an embed token for two datasets with RLS identities and a single report with read-only permissions. The embed token lets you view the report, which is dynamically bound to two different datasets.

Exemple de requête

POST https://api.powerbi.com/v1.0/myorg/GenerateToken
{
  "datasets": [
    {
      "id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229"
    },
    {
      "id": "e75afc47-1150-45e0-aba7-4eb04e4876e5"
    }
  ],
  "reports": [
    {
      "id": "b2e49b01-2356-4456-bfb9-3f4c2bc4ddbd"
    }
  ],
  "identities": [
    {
      "username": "john@contoso.com",
      "roles": [
        "sales"
      ],
      "datasets": [
        "cfafbeb1-8037-4d0c-896e-a46fb27ff229"
      ]
    },
    {
      "username": "iris@contoso.com",
      "roles": [
        "executive"
      ],
      "datasets": [
        "e75afc47-1150-45e0-aba7-4eb04e4876e5"
      ]
    }
  ]
}

Exemple de réponse

{
  "token": "H4sI....AAA=",
  "tokenId": "4b76f5ed-5a06-4150-8d1b-60f8e4c186f4",
  "expiration": "2028-07-29T17:58:19Z"
}

Example of generating an embed token that expires no later than ten minutes from the API call

Exemple de requête

POST https://api.powerbi.com/v1.0/myorg/GenerateToken
{
  "datasets": [
    {
      "id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229"
    }
  ],
  "reports": [
    {
      "id": "b2e49b01-2356-4456-bfb9-3f4c2bc4ddbd"
    }
  ],
  "identities": [
    {
      "username": "john@contoso.com",
      "roles": [
        "sales"
      ],
      "datasets": [
        "cfafbeb1-8037-4d0c-896e-a46fb27ff229"
      ]
    }
  ],
  "lifetimeInMinutes": 10
}

Exemple de réponse

{
  "token": "H4sI....AAA=",
  "tokenId": "4b76f5ed-5a06-4150-8d1b-60f8e4c186f4",
  "expiration": "2028-07-29T17:58:19Z"
}

Définitions

Nom Description
DatasourceConnectionDetails

Détails de la connexion à la source de données Power BI. Consultez des exemples dans Obtenir des sources de données ou Obtenir des sources de données dans lede groupe.

DatasourceIdentity

Identité effective pour connecter des sources de données DirectQuery avec l’authentification unique activée.

DatasourceSelector

Objet qui identifie de manière unique une seule source de données par ses détails de connexion.

EffectiveIdentity

Définit l’identité et les rôles de l’utilisateur. Pour plus d’informations, consultez sécurité au niveau des lignes avec Power BI Embedded.

EmbedToken

Un jeton d’incorporation Power BI

GenerateTokenRequestV2

Générer une demande de jeton Power BI V2

GenerateTokenRequestV2Dataset

Objet de jeu de données dans GenerateTokenRequestV2

GenerateTokenRequestV2Report

Objet de rapport dans GenerateTokenRequestV2

GenerateTokenRequestV2TargetWorkspace

Objet d’espace de travail dans GenerateTokenRequestV2

IdentityBlob

Objet blob pour spécifier une identité. Uniquement pris en charge pour les jeux de données avec une connexion DirectQuery à Azure SQL

XmlaPermissions

Autorisations XMLA

DatasourceConnectionDetails

Détails de la connexion à la source de données Power BI. Consultez des exemples dans Obtenir des sources de données ou Obtenir des sources de données dans lede groupe.

Nom Type Description
account

string

Compte de connexion

classInfo

string

Informations sur la classe de connexion

database

string

Base de données de connexion

domain

string

Domaine de connexion

emailAddress

string

Adresse e-mail de connexion

kind

string

Type de connexion

loginServer

string

Le serveur de connexion de connexion

path

string

Chemin d’accès de connexion

server

string

Le serveur de connexion

url

string

URL de connexion

DatasourceIdentity

Identité effective pour connecter des sources de données DirectQuery avec l’authentification unique activée.

Nom Type Description
datasources

DatasourceSelector[]

Tableau de sources de données auxquelles cette identité s’applique.

identityBlob

string

Objet blob pour spécifier l’identité.

DatasourceSelector

Objet qui identifie de manière unique une seule source de données par ses détails de connexion.

Nom Type Description
connectionDetails

DatasourceConnectionDetails

Détails de la connexion à la source de données. Vous pouvez obtenir les détails de connexion à l’aide de Obtenir des sources de données pour les rapports paginés et Obtenir des sources de données pour les rapports powerbi API.

datasourceType

string

Type de la source de données .

Nom de l’API pour la source de données
ActiveDirectory AdobeAnalytics AdoDotNet
AnalysisServices AzureBlobs AzureDataLakeStorage
AzureMarketplace AzureTables BizTalk
CDPA CustomConnector CustomHttpApi
DB2 Essbase EventHub
Excel Échange Extension
Facebook Fichier Dossier
GoogleAnalytics Hdfs HDInsight
Informix MQ MySql
OData ODBC OleDb
Oracle PostgreSql PowerQueryMashup
PubNub Salesforce SAPBW
SAPBWMessageServer SapErp SAPHana
SharePoint SharePointDocLib SharePointList
SQL Sybase Teradata
UIFlow le Web

EffectiveIdentity

Définit l’identité et les rôles de l’utilisateur. Pour plus d’informations, consultez sécurité au niveau des lignes avec Power BI Embedded.

Nom Type Description
auditableContext

string

Contexte auditable EffectiveIdentity. Si ce paramètre est fourni et n’est pas vide, il active l’audit de l’EffectiveIdentity et sa valeur est définie sur le nom d’utilisateur dans l’enregistrement d’audit. Sinon, le contexte EffectiveIdentity est omis à partir de l’enregistrement d’audit GenerateToken.

customData

string

données personnalisées utilisées pour appliquer des règles de sécurité au niveau des lignes. Prise en charge pour la connexion dynamique aux modèles Azure Analysis Services et aux modèles cloud uniquement.

datasets

string[]

Tableau de jeux de données pour lesquels cette identité s’applique

identityBlob

IdentityBlob

Objet blob qui spécifie une identité . Uniquement pris en charge pour les jeux de données avec une connexion DirectQuery à Azure SQL.

reports

string[]

Tableau de rapports pour lesquels cette identité s’applique. Uniquement pris en charge pour les rapports paginés.

roles

string[]

Tableau de rôles de sécurité au niveau des lignes (RLS) au sein d’un jeton qui applique des règles de sécurité au niveau des lignes. Une identité peut contenir jusqu’à 50 rôles. Un rôle peut contenir n’importe quel caractère, sauf ,, et sa longueur ne doit pas dépasser 50 caractères.

username

string

Nom d’utilisateur effectif dans un jeton qui applique des règles de sécurité au niveau des lignes. Pour un modèle local, le nom d’utilisateur peut contenir des caractères alphanumériques ou l’un des caractères suivants ., -, _, !, #, ^, ~, \\, @. Pour les modèles cloud, le nom d’utilisateur peut contenir n’importe quel caractère ASCII. Pour l’un ou l’autre modèle, la longueur du nom d’utilisateur ne doit pas dépasser 256 caractères et le nom d’utilisateur ne doit pas contenir d’espaces.

EmbedToken

Un jeton d’incorporation Power BI

Nom Type Description
expiration

string (date-time)

Date et heure (UTC) de l’expiration du jeton

token

string

Jeton incorporé

tokenId

string (uuid)

ID de jeton unique. Grâce aux journaux d’audit, l’ID de jeton peut être utilisé pour mettre en corrélation les opérations qui utilisent le jeton avec l’opération de génération.

GenerateTokenRequestV2

Générer une demande de jeton Power BI V2

Nom Type Description
datasets

GenerateTokenRequestV2Dataset[]

Liste des jeux de données

datasourceIdentities

DatasourceIdentity[]

Liste des identités à utiliser lors de la connexion à des sources de données avec Sign-On l’authentification unique (SSO) activée.

identities

EffectiveIdentity[]

Liste des identités à utiliser pour les règles de sécurité au niveau des lignes

lifetimeInMinutes

integer

Durée de vie maximale du jeton en minutes, à partir du moment où il a été généré. Peut être utilisé pour raccourcir le délai d’expiration du jeton, mais pas pour l’étendre. La valeur doit être un entier positif. Zéro (0) équivaut à nullet définit l’heure d’expiration par défaut.

reports

GenerateTokenRequestV2Report[]

Liste des rapports

targetWorkspaces

GenerateTokenRequestV2TargetWorkspace[]

Liste des espaces de travail auxquels le jeton incorporé permet d’enregistrer dans

GenerateTokenRequestV2Dataset

Objet de jeu de données dans GenerateTokenRequestV2

Nom Type Description
id

string

ID du jeu de données

xmlaPermissions

XmlaPermissions

Autorisations XMLA

GenerateTokenRequestV2Report

Objet de rapport dans GenerateTokenRequestV2

Nom Type Description
allowEdit

boolean

Indique si le jeton incorporé généré prend en charge la modification de rapport

id

string (uuid)

ID de rapport

GenerateTokenRequestV2TargetWorkspace

Objet d’espace de travail dans GenerateTokenRequestV2

Nom Type Description
id

string (uuid)

Identifiant de l’espace de travail

IdentityBlob

Objet blob pour spécifier une identité. Uniquement pris en charge pour les jeux de données avec une connexion DirectQuery à Azure SQL

Nom Type Description
value

string

Jeton d’accès OAuth 2.0 pour Azure SQL

XmlaPermissions

Autorisations XMLA

Valeur Description
Off

Indique que le jeton incorporé généré n’accorde pas d’autorisations d’accès au point de terminaison XMLA du jeu de données.

ReadOnly

Indique que le jeton incorporé généré accorde des autorisations d’accès en lecture au point de terminaison XMLA du jeu de données.