共用方式為


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

要求本文

名稱 類型 Description
datasets

GenerateTokenRequestV2Dataset[]

資料集清單

datasourceIdentities

DatasourceIdentity[]

連線到已啟用單一 Sign-On (SSO) 的資料來源時,要使用的身分識別清單。

identities

EffectiveIdentity[]

要用於資料列層級安全性規則的身分識別清單

lifetimeInMinutes

integer

權杖的存留期上限,從產生權杖的時間開始。 可用來縮短權杖的到期時間,但不能加以擴充。 其值必須為正整數。 零 (0) 相當於 null ,而且會設定預設到期時間。

reports

GenerateTokenRequestV2Report[]

報表清單

targetWorkspaces

GenerateTokenRequestV2TargetWorkspace[]

內嵌權杖將允許儲存至的工作區清單

回應

名稱 類型 Description
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"
}

定義

名稱 Description
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。 僅支援具有 DirectQuery 連線至 Azure SQL 的資料集

XmlaPermissions

XMLA 許可權

DatasourceConnectionDetails

Power BI 資料來源連線詳細資料。 請參閱 取得資料來源取得群組中的資料來源範例。

名稱 類型 Description
account

string

線上帳戶

classInfo

string

連接類別資訊

database

string

連接資料庫

domain

string

連線網域

emailAddress

string

連線電子郵件地址

kind

string

連線種類

loginServer

string

連線登入伺服器

path

string

連線路徑

server

string

連接伺服器

url

string

連線 URL

DatasourceIdentity

使用已啟用單一登入 (SSO) 連線 DirectQuery 資料來源的有效身分識別。

名稱 類型 Description
datasources

DatasourceSelector[]

此身分識別所套用的資料來源陣列。

identityBlob

string

用於指定身分識別的 Blob。

DatasourceSelector

物件,其連接詳細資料可唯一識別單一資料來源。

名稱 類型 Description
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

名稱 類型 Description
auditableContext

string

EffectiveIdentity 可稽核的內容。 如果提供此參數且不是空的,則會啟用 EffectiveIdentity 的稽核,而且其值將會設定為稽核記錄中的使用者名稱。 否則,EffectiveIdentity 內容將會從 GenerateToken 稽核記錄中省略。

customData

string

用來套用資料列層級安全性規則的自訂資料。 僅支援與Azure Analysis Services模型和雲端模型的即時連線。

datasets

string[]

套用此身分識別的資料集陣列

identityBlob

IdentityBlob

指定 身分識別的 Blob。 僅支援具有 DirectQuery 連線至 Azure SQL的資料集。

reports

string[]

套用此身分識別的報表陣列。 僅支援編頁報表。

roles

string[]

套用 RLS 規則的權杖內,資料列層級安全性 (RLS) 角色的陣列。 身分識別最多可以包含 50 個角色。 角色可以包含除了 以外的 , 任何字元,而且其長度不能超過 50 個字元。

username

string

套用資料列層級安全性規則之權杖內的有效使用者名稱。 針對內部部署模型,使用者名稱可以包含英數位元或下列任何字元 .-#!_^~ 、 。 \\@ 針對雲端模型,使用者名稱可以包含任何 ASCII 字元。 針對任一模型,使用者名稱長度不能超過 256 個字元,而且使用者名稱不應包含空格。

EmbedToken

Power BI 內嵌權杖

名稱 類型 Description
expiration

string

權杖到期的日期和時間 (UTC)

token

string

內嵌權杖

tokenId

string

唯一的權杖識別碼。 透過稽核記錄,權杖識別碼可用來將使用權杖與產生作業的作業相互關聯。

GenerateTokenRequestV2

Power BI 產生權杖要求 V2

名稱 類型 Description
datasets

GenerateTokenRequestV2Dataset[]

資料集清單

datasourceIdentities

DatasourceIdentity[]

連線到已啟用單一 Sign-On (SSO) 的資料來源時,要使用的身分識別清單。

identities

EffectiveIdentity[]

要用於資料列層級安全性規則的身分識別清單

lifetimeInMinutes

integer

權杖的存留期上限,從產生權杖的時間開始。 可用來縮短權杖的到期時間,但不能加以擴充。 其值必須為正整數。 零 (0) 相當於 null ,而且會設定預設到期時間。

reports

GenerateTokenRequestV2Report[]

報表清單

targetWorkspaces

GenerateTokenRequestV2TargetWorkspace[]

內嵌權杖將允許儲存至的工作區清單

GenerateTokenRequestV2Dataset

GenerateTokenRequestV2中的資料集物件

名稱 類型 Description
id

string

資料集識別碼

xmlaPermissions

XmlaPermissions

XMLA 許可權

GenerateTokenRequestV2Report

GenerateTokenRequestV2中的報表物件

名稱 類型 Description
allowEdit

boolean

產生的內嵌權杖是否支援報表編輯

id

string

報表識別碼

GenerateTokenRequestV2TargetWorkspace

GenerateTokenRequestV2中的工作區物件

名稱 類型 Description
id

string

工作區識別碼

IdentityBlob

用於指定身分識別的 Blob。 僅支援具有 DirectQuery 連線至 Azure SQL 的資料集

名稱 類型 Description
value

string

適用于 Azure SQL 的 OAuth 2.0 存取權杖

XmlaPermissions

XMLA 許可權

名稱 類型 Description
Off

string

表示產生的內嵌權杖不會將存取權限授與資料集的 XMLA 端點。

ReadOnly

string

表示產生的內嵌權杖會將讀取存取許可權授與資料集的 XMLA 端點。