Embed Token - Generate Token

为多个报表、数据集和目标工作区生成嵌入令牌。

  • 报表和数据集不必相关。
  • 可以在嵌入期间将报表绑定到数据集。
  • 只能在 参数 targetWorkspaces 指定的工作区中创建报表。

重要

此 API 调用仅与 为客户 嵌入方案相关。 若要了解有关使用此 API 的详细信息,请参阅 生成嵌入令牌时的注意事项

权限

必需范围

以下所有项,除非要求不适用:

  • Content.Create,如果在 GenerateTokenRequestV2 中指定了目标工作区,则为必需。
  • Report.ReadWrite.All 或 Report.Read.All,如果在 GenerateTokenRequestV2 中指定了报表,则是必需的。
  • Report.ReadWrite.All,如果 allowEditGenerateTokenRequestV2 中的至少一个报表指定了标志,则是必需的。
  • Dataset.ReadWrite.All 或 Dataset.Read.All

限制

  • 只能在 参数 targetWorkspaces 指定的工作区中创建报表。
  • 所有报表和数据集都必须驻留在 V2 工作区中。
  • 所有目标工作区都必须是 V2 工作区。
  • 最多 50 个报表。
  • 最多 50 个数据集。
  • 最多 50 个目标工作区。
  • 对于Azure Analysis Services或 Analysis Services 本地实时连接报表,生成具有行级别安全性的嵌入令牌 (RLS) 在重新绑定后的几分钟内可能无法正常工作。

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

请求正文

名称 类型 说明
datasets

GenerateTokenRequestV2Dataset[]

数据集列表

datasourceIdentities

DatasourceIdentity[]

连接到启用了单 Sign-On (SSO) 的数据源时要使用的标识列表。

identities

EffectiveIdentity[]

用于行级别安全规则的标识列表

lifetimeInMinutes

integer

令牌的最长生存期(以分钟为单位),从生成令牌的时间开始计算。 可用于缩短令牌的过期时间,但不能用于延长令牌的过期时间。 该值必须是正整数。 零 (0) 等效于 null,将设置默认过期时间。

reports

GenerateTokenRequestV2Report[]

报表列表

targetWorkspaces

GenerateTokenRequestV2TargetWorkspace[]

嵌入令牌允许保存到的工作区列表

响应

名称 类型 说明
200 OK

EmbedToken

确定

示例

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

定义

名称 说明
DatasourceConnectionDetails

Power BI 数据源连接详细信息。 请参阅 获取数据源获取组中的数据源中的示例。

DatasourceIdentity

使用启用了单一登录 (SSO) 连接 DirectQuery 数据源的有效标识。

DatasourceSelector

一个 对象,该对象通过其连接详细信息唯一标识单个数据源。

EffectiveIdentity

定义用户标识和角色。 有关详细信息,请参阅使用 Power BI Embedded 实现行级别安全性

EmbedToken

Power BI 嵌入令牌

GenerateTokenRequestV2

Power BI 生成令牌请求 V2

GenerateTokenRequestV2Dataset

GenerateTokenRequestV2 中的数据集对象

GenerateTokenRequestV2Report

GenerateTokenRequestV2 中的报表对象

GenerateTokenRequestV2TargetWorkspace

GenerateTokenRequestV2 中的工作区对象

IdentityBlob

用于指定标识的 Blob。 仅支持与 Azure SQL 建立 DirectQuery 连接的数据集

XmlaPermissions

XMLA 权限

DatasourceConnectionDetails

Power BI 数据源连接详细信息。 请参阅 获取数据源获取组中的数据源中的示例。

名称 类型 说明
account

string

连接帐户

classInfo

string

连接类信息

database

string

连接数据库

domain

string

连接域

emailAddress

string

连接电子邮件地址

kind

string

连接类型

loginServer

string

连接登录服务器

path

string

连接路径

server

string

连接服务器

url

string

连接 URL

DatasourceIdentity

使用启用了单一登录 (SSO) 连接 DirectQuery 数据源的有效标识。

名称 类型 说明
datasources

DatasourceSelector[]

此标识适用的数据源数组。

identityBlob

string

用于指定标识的 Blob。

DatasourceSelector

一个 对象,该对象通过其连接详细信息唯一标识单个数据源。

名称 类型 说明
connectionDetails

DatasourceConnectionDetails

数据源连接详细信息。 可以使用 获取分页报表的数据源Powerbi 报表 API 的获取数据源 获取连接详细信息。

datasourceType

string

数据源的类型。

数据源的 API 名称
ActiveDirectory AdobeAnalytics AdoDotNet
AnalysisServices AzureBlobs AzureDataLakeStorage
AzureMarketplace AzureTables BizTalk
CDPA CustomConnector CustomHttpApi
DB2 Essbase EventHub
Excel Exchange 分机
Facebook 文件 文件夹
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

定义用户标识和角色。 有关详细信息,请参阅使用 Power BI Embedded 实现行级别安全性

名称 类型 说明
auditableContext

string

EffectiveIdentity 可审核上下文。 如果此参数已提供且不为空,它将启用 EffectiveIdentity 的审核,并且其值将设置为审核记录中的用户名。 否则,GenerateToken 审核记录中将省略 EffectiveIdentity 上下文。

customData

string

用于应用行级安全规则的自定义数据。 仅支持与Azure Analysis Services模型和云模型的实时连接。

datasets

string[]

应用此标识的数据集数组

identityBlob

IdentityBlob

一个指定 标识的 Blob。 仅支持与 Azure SQL 建立 DirectQuery 连接的数据集。

reports

string[]

应用此标识的报表数组。 仅分页报表支持。

roles

string[]

行级安全 (RLS) 应用 RLS 规则的令牌中的角色数组。 一个标识最多可以包含 50 个角色。 角色可以包含除 之外 ,的任何字符,其长度不得超过 50 个字符。

username

string

令牌中应用行级安全规则的有效用户名。 对于本地模型,用户名可以包含字母数字或以下任意字符 .、、-_!^#~、 。 @\\ 对于云模型,用户名可以包含任何 ASCII 字符。 对于任一模型,用户名长度不得超过 256 个字符,并且用户名不应包含空格。

EmbedToken

Power BI 嵌入令牌

名称 类型 说明
expiration

string

令牌过期) UTC (日期和时间

token

string

嵌入令牌

tokenId

string

唯一的令牌 ID。 通过审核日志,令牌 ID 可用于将使用该令牌的操作与生成操作相关联。

GenerateTokenRequestV2

Power BI 生成令牌请求 V2

名称 类型 说明
datasets

GenerateTokenRequestV2Dataset[]

数据集列表

datasourceIdentities

DatasourceIdentity[]

连接到启用了单 Sign-On (SSO) 的数据源时要使用的标识列表。

identities

EffectiveIdentity[]

用于行级别安全规则的标识列表

lifetimeInMinutes

integer

令牌的最长生存期(以分钟为单位),从生成令牌的时间开始计算。 可用于缩短令牌的过期时间,但不能用于延长令牌的过期时间。 该值必须是正整数。 零 (0) 等效于 null,将设置默认过期时间。

reports

GenerateTokenRequestV2Report[]

报表列表

targetWorkspaces

GenerateTokenRequestV2TargetWorkspace[]

嵌入令牌允许保存到的工作区列表

GenerateTokenRequestV2Dataset

GenerateTokenRequestV2 中的数据集对象

名称 类型 说明
id

string

数据集 ID

xmlaPermissions

XmlaPermissions

XMLA 权限

GenerateTokenRequestV2Report

GenerateTokenRequestV2 中的报表对象

名称 类型 说明
allowEdit

boolean

生成的嵌入令牌是否支持报表编辑

id

string

报表 ID

GenerateTokenRequestV2TargetWorkspace

GenerateTokenRequestV2 中的工作区对象

名称 类型 说明
id

string

工作区 ID

IdentityBlob

用于指定标识的 Blob。 仅支持与 Azure SQL 建立 DirectQuery 连接的数据集

名称 类型 说明
value

string

用于Azure SQL的 OAuth 2.0 访问令牌

XmlaPermissions

XMLA 权限

名称 类型 说明
Off

string

指示生成的嵌入令牌不向数据集的 XMLA 终结点授予访问权限。

ReadOnly

string

指示生成的嵌入令牌向数据集的 XMLA 终结点授予读取访问权限。