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 lié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 targetWorkspaces paramètre .

Important

Cet appel d’API s’applique uniquement au scénario d’incorporation pour vos clients . 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

Tous les éléments suivants, 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, requis 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 targetWorkspaces paramètre .
  • 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 des espaces de travail V2 .
  • Maximum 50 rapports.
  • Maximum 50 jeux de données.
  • Maximum 50 espaces de travail cibles.
  • Pour les rapports de connexion active locale Azure Analysis Services ou Analysis Services, la génération d’un jeton incorporé avec la sécurité au niveau des lignes (SNL) peut ne pas fonctionner pendant plusieurs minutes après une nouvelle liaison.

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 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. Cette valeur doit être un entier positif. Zéro (0) équivaut à nullet définit le délai d’expiration par défaut.

reports

GenerateTokenRequestV2Report[]

Liste des rapports

targetWorkspaces

GenerateTokenRequestV2TargetWorkspace[]

Liste des espaces de travail sur tableaux que le jeton incorporé permet d’enregistrer

Réponses

Nom Type Description
200 OK

EmbedToken

Ok

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.

Sample Request

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"
    }
  ]
}

Sample Response

{
  "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

Sample Request

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"
      ]
    }
  ]
}

Sample Response

{
  "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

Sample Request

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="
    }
  ]
}

Sample Response

{
  "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

Sample Request

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="
    }
  ]
}

Sample Response

{
  "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

Sample Request

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="
    }
  ]
}

Sample Response

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

Sample Request

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="
    }
  ]
}

Sample Response

{
  "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.

Sample Request

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"
    }
  ]
}

Sample Response

{
  "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.

Sample Request

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"
      ]
    }
  ]
}

Sample Response

{
  "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

Sample Request

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
}

Sample Response

{
  "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 en groupe.

DatasourceIdentity

Identité effective pour la connexion de sources de données DirectQuery avec l’authentification unique (SSO) 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 incorporé Power BI

GenerateTokenRequestV2

Power BI Generate Token Request 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 permettant de spécifier une identité. Pris en charge uniquement 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 en 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

Serveur de connexion

path

string

Chemin de connexion

server

string

Serveur de connexion

url

string

URL de connexion

DatasourceIdentity

Identité effective pour la connexion de sources de données DirectQuery avec l’authentification unique (SSO) activée.

Nom Type Description
datasources

DatasourceSelector[]

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

identityBlob

string

Objet blob permettant de 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 en utilisant Obtenir des sources de données pour les rapports paginés et Obtenir des sources de données pour les API de rapports powerbi .

datasourceType

string

Type de la source de données.

Nom de l’API pour la source de données
Active Directory AdobeAnalytics AdoDotNet
AnalysisServices AzureBlobs AzureDataLakeStorage
AzureMarketplace AzureTables BizTalk
CDPA CustomConnector CustomHttpApi
DB2 Essbase Event Hub
Excel Exchange 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 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 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. Pris 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 auxquels cette identité s’applique

identityBlob

IdentityBlob

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

reports

string[]

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

roles

string[]

Tableau de rôles de sécurité au niveau des lignes (SNL) dans 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 à l’exception ,de , 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 incorporé Power BI

Nom Type Description
expiration

string

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

token

string

Jeton incorporé

tokenId

string

ID de jeton unique. Par le biais des 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

Power BI Generate Token Request 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 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. Cette valeur doit être un entier positif. Zéro (0) équivaut à nullet définit le délai d’expiration par défaut.

reports

GenerateTokenRequestV2Report[]

Liste des rapports

targetWorkspaces

GenerateTokenRequestV2TargetWorkspace[]

Liste des espaces de travail sur tableaux que le jeton incorporé permet d’enregistrer

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

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

id

string

ID de rapport

GenerateTokenRequestV2TargetWorkspace

Objet d’espace de travail dans GenerateTokenRequestV2

Nom Type Description
id

string

L’ID de l’espace de travail

IdentityBlob

Objet blob permettant de spécifier une identité. Pris en charge uniquement 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

Nom Type Description
Off

string

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

string

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.