Embed Token - Generate Token
產生多個報表、資料集和目標工作區的內嵌權杖。
- 報表和資料集不需要相關。
- 您可以在內嵌期間將報表系結至資料集。
- 您只能在 參數指定的
targetWorkspaces
工作區中建立報表。
重要
此 API 呼叫只與 客戶案例的內嵌 相關。 若要深入瞭解如何使用此 API,請參閱 產生內嵌權杖時的考慮。
權限
- 使用服務主體進行驗證時,請參閱 使用服務主體內嵌 Power BI 內容 和 考慮和限制。
- 針對具有編頁視覺效果的 Power BI 報表,請在 API 呼叫中包含編頁報表識別碼。 如需詳細資訊,請參閱 範例。
- 此 API 呼叫可由服務主體設定檔呼叫。 如需詳細資訊,請參閱:Power BI Embedded中的服務主體設定檔。
必要範圍
除非需求不適用,否則所有專案皆適用:
- Content.Create,如果 GenerateTokenRequestV2中指定了目標工作區,則為必要專案。
- Report.ReadWrite.All 或 Report.Read.All,如果 GenerateTokenRequestV2中指定報表,則為必要專案。
- Report.ReadWrite.All,如果在
allowEdit
GenerateTokenRequestV2中為至少一個報表指定旗標,則為必要專案。 - 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 |
資料集清單 |
|
datasourceIdentities |
連線到已啟用單一 Sign-On (SSO) 的資料來源時,要使用的身分識別清單。 |
|
identities |
要用於資料列層級安全性規則的身分識別清單 |
|
lifetimeInMinutes |
integer |
權杖的存留期上限,從產生權杖的時間開始。 可用來縮短權杖的到期時間,但不能加以擴充。 其值必須為正整數。 零 ( |
reports |
報表清單 |
|
targetWorkspaces |
內嵌權杖將允許儲存至的工作區清單 |
回應
名稱 | 類型 | Description |
---|---|---|
200 OK |
確定 |
範例
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"
}
定義
名稱 | Description |
---|---|
Datasource |
Power BI 資料來源連線詳細資料。 請參閱 取得資料來源 或 取得群組中的資料來源範例。 |
Datasource |
使用已啟用單一登入 (SSO) 連線 DirectQuery 資料來源的有效身分識別。 |
Datasource |
物件,其連接詳細資料可唯一識別單一資料來源。 |
Effective |
定義使用者身分識別和角色。 如需詳細資訊,請參閱資料列層級安全性與Power BI Embedded。 |
Embed |
Power BI 內嵌權杖 |
Generate |
Power BI 產生權杖要求 V2 |
Generate |
GenerateTokenRequestV2中的資料集物件 |
Generate |
GenerateTokenRequestV2中的報表物件 |
Generate |
GenerateTokenRequestV2中的工作區物件 |
Identity |
用於指定身分識別的 Blob。 僅支援具有 DirectQuery 連線至 Azure SQL 的資料集 |
Xmla |
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 |
此身分識別所套用的資料來源陣列。 |
|
identityBlob |
string |
用於指定身分識別的 Blob。 |
DatasourceSelector
物件,其連接詳細資料可唯一識別單一資料來源。
名稱 | 類型 | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
connectionDetails |
資料來源連線詳細資料。 您可以使用 取得編頁報表的資料來源 和 Powerbi 報表 API 的取得資料來源 來取得連線詳細資料。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||
datasourceType |
string |
資料來源的類型。
|
EffectiveIdentity
定義使用者身分識別和角色。 如需詳細資訊,請參閱資料列層級安全性與Power BI Embedded。
名稱 | 類型 | Description |
---|---|---|
auditableContext |
string |
EffectiveIdentity 可稽核的內容。 如果提供此參數且不是空的,則會啟用 EffectiveIdentity 的稽核,而且其值將會設定為稽核記錄中的使用者名稱。 否則,EffectiveIdentity 內容將會從 GenerateToken 稽核記錄中省略。 |
customData |
string |
用來套用資料列層級安全性規則的自訂資料。 僅支援與Azure Analysis Services模型和雲端模型的即時連線。 |
datasets |
string[] |
套用此身分識別的資料集陣列 |
identityBlob |
指定 身分識別的 Blob。 僅支援具有 DirectQuery 連線至 Azure SQL的資料集。 |
|
reports |
string[] |
套用此身分識別的報表陣列。 僅支援編頁報表。 |
roles |
string[] |
套用 RLS 規則的權杖內,資料列層級安全性 (RLS) 角色的陣列。 身分識別最多可以包含 50 個角色。 角色可以包含除了 以外的 |
username |
string |
套用資料列層級安全性規則之權杖內的有效使用者名稱。 針對內部部署模型,使用者名稱可以包含英數位元或下列任何字元 |
EmbedToken
Power BI 內嵌權杖
名稱 | 類型 | Description |
---|---|---|
expiration |
string |
權杖到期的日期和時間 (UTC) |
token |
string |
內嵌權杖 |
tokenId |
string |
唯一的權杖識別碼。 透過稽核記錄,權杖識別碼可用來將使用權杖與產生作業的作業相互關聯。 |
GenerateTokenRequestV2
Power BI 產生權杖要求 V2
名稱 | 類型 | Description |
---|---|---|
datasets |
資料集清單 |
|
datasourceIdentities |
連線到已啟用單一 Sign-On (SSO) 的資料來源時,要使用的身分識別清單。 |
|
identities |
要用於資料列層級安全性規則的身分識別清單 |
|
lifetimeInMinutes |
integer |
權杖的存留期上限,從產生權杖的時間開始。 可用來縮短權杖的到期時間,但不能加以擴充。 其值必須為正整數。 零 ( |
reports |
報表清單 |
|
targetWorkspaces |
內嵌權杖將允許儲存至的工作區清單 |
GenerateTokenRequestV2Dataset
GenerateTokenRequestV2中的資料集物件
名稱 | 類型 | Description |
---|---|---|
id |
string |
資料集識別碼 |
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 端點。 |