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
- Lorsque vous utilisez un principal de service pour l’authentification, reportez-vous aux rubriques Incorporer du contenu Power BI avec le principal de service et Considérations et limitations.
- Pour les rapports Power BI avec un visuel paginé, incluez l’ID de rapport paginé dans l’appel d’API. Pour plus d’informations, consultez l’exemple.
- Cet appel d’API peut être appelé par un profil de principal de service. Pour plus d’informations, consultez Profils de principal de service dans Power BI Embedded.
É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 |
Liste des jeux de données |
|
datasourceIdentities |
Liste des identités à utiliser lors de la connexion à des sources de données avec Sign-On unique (SSO) activée. |
|
identities |
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 ( |
reports |
Liste des rapports |
|
targetWorkspaces |
Liste des espaces de travail sur tableaux que le jeton incorporé permet d’enregistrer |
Réponses
Nom | Type | Description |
---|---|---|
200 OK |
Ok |
Exemples
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"
}
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
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 |
---|---|
Datasource |
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. |
Datasource |
Identité effective pour la connexion de sources de données DirectQuery avec l’authentification unique (SSO) activée. |
Datasource |
Objet qui identifie de manière unique une seule source de données par ses détails de connexion. |
Effective |
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. |
Embed |
Un jeton incorporé Power BI |
Generate |
Power BI Generate Token Request V2 |
Generate |
Objet de jeu de données dans GenerateTokenRequestV2 |
Generate |
Objet de rapport dans GenerateTokenRequestV2 |
Generate |
Objet d’espace de travail dans GenerateTokenRequestV2 |
Identity |
Objet blob permettant de spécifier une identité. Pris en charge uniquement pour les jeux de données avec une connexion DirectQuery à Azure SQL |
Xmla |
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 |
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 |
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.
|
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 |
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 |
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 |
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 |
Liste des jeux de données |
|
datasourceIdentities |
Liste des identités à utiliser lors de la connexion à des sources de données avec Sign-On unique (SSO) activée. |
|
identities |
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 ( |
reports |
Liste des rapports |
|
targetWorkspaces |
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 |
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. |