Embed Token - Generate Token

Создает токен внедрения для нескольких отчетов, наборов данных и целевых рабочих областей.

  • Отчеты и наборы данных не обязательно должны быть связаны.
  • Отчет можно привязать к набору данных во время внедрения.
  • Отчет можно создать только в рабочих областях, указанных параметром targetWorkspaces .

Важно!

Этот вызов API относится только к сценарию внедрения для клиентов . Дополнительные сведения об использовании этого API см. в статье Рекомендации по созданию токена внедрения.

Разрешения

Требуемая область

Все перечисленные ниже действия, если не применяются требования:

  • Content.Create, требуется, если целевая рабочая область указана в GenerateTokenRequestV2.
  • Report.ReadWrite.All или Report.Read.All, требуется, если отчет указан в GenerateTokenRequestV2.
  • Report.ReadWrite.All, требуется, если allowEdit флаг указан по крайней мере для одного отчета в GenerateTokenRequestV2.
  • Dataset.ReadWrite.All или Dataset.Read.All

Ограничения

  • Отчет можно создать только в рабочих областях, указанных параметром targetWorkspaces .
  • Все отчеты и наборы данных должны находиться в рабочей области версии 2 .
  • Все целевые рабочие области должны быть рабочими областями версии 2 .
  • Максимум 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

Эффективное удостоверение для подключения источников данных DirectQuery с включенным единым входом.

DatasourceSelector

Объект, однозначно определяющий один источник данных по сведениям о подключении.

EffectiveIdentity

Определяет удостоверение пользователя и роли. Дополнительные сведения см. в статье Безопасность на уровне строк с помощью Power BI Embedded.

EmbedToken

Токен внедрения Power BI

GenerateTokenRequestV2

Power BI Generate Token Request V2

GenerateTokenRequestV2Dataset

Объект набора данных в GenerateTokenRequestV2

GenerateTokenRequestV2Report

Объект отчета в GenerateTokenRequestV2

GenerateTokenRequestV2TargetWorkspace

Объект рабочей области в GenerateTokenRequestV2

IdentityBlob

Большой двоичный объект для указания удостоверения. Поддерживается только для наборов данных с подключением DirectQuery к Azure SQL

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

Эффективное удостоверение для подключения источников данных DirectQuery с включенным единым входом.

Имя Тип Описание
datasources

DatasourceSelector[]

Массив источников данных, к которым применяется это удостоверение.

identityBlob

string

Большой двоичный объект для указания удостоверения.

DatasourceSelector

Объект, однозначно определяющий один источник данных по сведениям о подключении.

Имя Тип Описание
connectionDetails

DatasourceConnectionDetails

Сведения о подключении к источнику данных. Сведения о подключении можно получить с помощью команд Get Datasources для отчетов с разбивкой на страницы и Get Datasources для API отчетов powerbi .

datasourceType

string

Тип источника данных.

Имя API для источника данных
ActiveDirectory AdobeAnalytics AdoDotNet
Analysis Services: Blob-объекты Azure AzureDataLakeStorage
AzureMarketplace AzureTables BizTalk
CDPA CustomConnector CustomHttpApi
DB2 Essbase концентратор событий.
Excel Exchange Расширение
Facebook File Папка
GoogleAnalytics Hdfs HDInsight
Informix Магический квадрант MySQL
OData ODBC OleDb
Oracle; PostgreSQL PowerQueryMashup
с помощью PubNub. Salesforce SAPBW
SAPBWMessageServer SapErp SAPHana
SharePoint SharePointDocLib SharePointList
SQL Sybase Teradata
UIFlow Интернет

EffectiveIdentity

Определяет удостоверение пользователя и роли. Дополнительные сведения см. в статье Безопасность на уровне строк с помощью Power BI Embedded.

Имя Тип Описание
auditableContext

string

Контекст, доступный для аудита EffectiveIdentity. Если этот параметр указан и не пуст, он включает аудит EffectiveIdentity и для него будет задано имя пользователя в записи аудита. В противном случае контекст EffectiveIdentity будет опущен в записи аудита GenerateToken.

customData

string

Пользовательские данные , используемые для применения правил безопасности на уровне строк. Поддерживается только для динамического подключения к Azure Analysis Services моделям и облачным моделям.

datasets

string[]

Массив наборов данных, к которым применяется это удостоверение.

identityBlob

IdentityBlob

Большой двоичный объект, указывающий удостоверение. Поддерживается только для наборов данных с подключением DirectQuery к Azure SQL.

reports

string[]

Массив отчетов, к которым применяется это удостоверение. Поддерживается только для отчетов с разбивкой на страницы.

roles

string[]

Массив ролей безопасности на уровне строк (RLS) в маркере, который применяет правила RLS. Удостоверение может содержать до 50 ролей. Роль может содержать любой символ, кроме ,, и ее длина не должна превышать 50 символов.

username

string

Действующее имя пользователя в маркере, который применяет правила безопасности на уровне строк. Для локальной модели имя пользователя может содержать буквенно-цифровые или любой из следующих символов ., , -, _, #^!, ~, \\, , . @ Для облачных моделей имя пользователя может содержать любой символ ASCII. Для любой модели длина имени пользователя не должна превышать 256 символов, а имя пользователя не должно содержать пробелов.

EmbedToken

Токен внедрения Power BI

Имя Тип Описание
expiration

string

Дата и время окончания срока действия маркера (UTC)

token

string

Токен внедрения

tokenId

string

Уникальный идентификатор маркера. С помощью журналов аудита идентификатор маркера можно использовать для сопоставления операций, использующих маркер, с операцией создания.

GenerateTokenRequestV2

Power BI Generate Token Request V2

Имя Тип Описание
datasets

GenerateTokenRequestV2Dataset[]

Список наборов данных

datasourceIdentities

DatasourceIdentity[]

Список удостоверений, используемых при подключении к источникам данных с включенным единым Sign-On (SSO).

identities

EffectiveIdentity[]

Список удостоверений, используемых для правил безопасности на уровне строк

lifetimeInMinutes

integer

Максимальное время существования маркера в минутах, начиная с момента его создания. Можно использовать для сокращения срока действия маркера, но не для его продления. Значение должно быть положительным целым числом. Ноль (0) эквивалентен nullи задает время окончания срока действия по умолчанию.

reports

GenerateTokenRequestV2Report[]

Список отчетов

targetWorkspaces

GenerateTokenRequestV2TargetWorkspace[]

Список рабочих областей, в которые токен внедрения позволяет сохранять

GenerateTokenRequestV2Dataset

Объект набора данных в GenerateTokenRequestV2

Имя Тип Описание
id

string

Идентификатор набора данных

xmlaPermissions

XmlaPermissions

Разрешения XMLA

GenerateTokenRequestV2Report

Объект отчета в GenerateTokenRequestV2

Имя Тип Описание
allowEdit

boolean

Поддерживает ли созданный токен внедрения редактирование отчета

id

string

Идентификатор отчета

GenerateTokenRequestV2TargetWorkspace

Объект рабочей области в GenerateTokenRequestV2

Имя Тип Описание
id

string

идентификатор рабочей области;

IdentityBlob

Большой двоичный объект для указания удостоверения. Поддерживается только для наборов данных с подключением DirectQuery к Azure SQL

Имя Тип Описание
value

string

Маркер доступа OAuth 2.0 для Azure SQL

XmlaPermissions

Разрешения XMLA

Имя Тип Описание
Off

string

Указывает, что созданный маркер внедрения не предоставляет разрешения на доступ к конечной точке XMLA набора данных.

ReadOnly

string

Указывает, что созданный токен внедрения предоставляет разрешения на чтение конечной точке XMLA набора данных.