Embed Token - Generate Token
Gera um token de inserção para vários relatórios, conjuntos de dados e workspaces de destino.
- Relatórios e conjuntos de dados não precisam estar relacionados.
- Você pode associar um relatório a um conjunto de dados durante a inserção.
- Você só pode criar um relatório em workspaces especificados pelo
targetWorkspaces
parâmetro .
Importante
Essa chamada à API só é relevante para o cenário de inserção para seus clientes . Para saber mais sobre como usar essa API, confira Considerações ao gerar um token de inserção.
Permissões
- Ao usar uma entidade de serviço para autenticação, consulte Inserir conteúdo do Power BI com a entidade de serviço e Considerações e limitações.
- Para relatórios do Power BI com um visual paginado, inclua a ID do relatório paginado na chamada à API. Para obter mais informações, consulte exemplo.
- Essa chamada à API pode ser chamada por um perfil de entidade de serviço. Para obter mais informações, consulte: Perfis de entidade de serviço no Power BI Embedded.
Escopo necessário
Tudo isso, a menos que um requisito não se aplique:
- Content.Create, necessário se um workspace de destino for especificado em GenerateTokenRequestV2.
- Report.ReadWrite.All ou Report.Read.All, necessário se um relatório for especificado em GenerateTokenRequestV2.
- Report.ReadWrite.All, necessário se o
allowEdit
sinalizador for especificado para pelo menos um relatório em GenerateTokenRequestV2. - Dataset.ReadWrite.All ou Dataset.Read.All
Limitações
- Você só pode criar um relatório em workspaces especificados pelo
targetWorkspaces
parâmetro . - Todos os relatórios e conjuntos de dados devem residir em um workspace V2 .
- Todos os workspaces de destino devem ser workspaces V2 .
- Máximo de 50 relatórios.
- Máximo de 50 conjuntos de dados.
- Máximo de 50 workspaces de destino.
- Para relatórios de conexão dinâmica local do Azure Analysis Services ou do Analysis Services, a geração de um token de inserção com RLS (segurança em nível de linha) pode não funcionar por vários minutos após uma reassociação.
POST https://api.powerbi.com/v1.0/myorg/GenerateToken
Corpo da solicitação
Nome | Tipo | Description |
---|---|---|
datasets |
Uma lista de conjuntos de dados |
|
datasourceIdentities |
Lista de identidades a serem usadas ao se conectar a fontes de dados com o SSO (Sign-On único) habilitado. |
|
identities |
A lista de identidades a serem usadas para regras de segurança em nível de linha |
|
lifetimeInMinutes |
integer |
O tempo de vida máximo do token em minutos, começando a partir do momento em que ele foi gerado. Pode ser usado para reduzir o tempo de expiração do token, mas não para estendê-lo. O valor deve ser um inteiro positivo. Zero ( |
reports |
Uma lista de relatórios |
|
targetWorkspaces |
A lista de workspaces em que o token de inserção permitirá salvar |
Respostas
Nome | Tipo | Description |
---|---|---|
200 OK |
OK |
Exemplos
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"
}
Definições
Nome | Description |
---|---|
Datasource |
Os detalhes da conexão da fonte de dados do Power BI. Veja exemplos em Obter Fontes de Dados ou Obter Fontes de Dados em Grupo. |
Datasource |
Identidade efetiva para conectar fontes de dados do DirectQuery com o SSO (logon único) habilitado. |
Datasource |
Um objeto que identifica exclusivamente uma única fonte de dados por seus detalhes de conexão. |
Effective |
Define a identidade do usuário e as funções. Para obter mais informações, consulte Segurança em nível de linha com Power BI Embedded. |
Embed |
Um token de inserção do Power BI |
Generate |
Solicitação de geração de token do Power BI V2 |
Generate |
Um objeto de conjunto de dados em GenerateTokenRequestV2 |
Generate |
Um objeto de relatório em GenerateTokenRequestV2 |
Generate |
Um objeto de workspace em GenerateTokenRequestV2 |
Identity |
Um blob para especificar uma identidade. Compatível apenas com conjuntos de dados com uma conexão DirectQuery com SQL do Azure |
Xmla |
Permissões XMLA |
DatasourceConnectionDetails
Os detalhes da conexão da fonte de dados do Power BI. Veja exemplos em Obter Fontes de Dados ou Obter Fontes de Dados em Grupo.
Nome | Tipo | Description |
---|---|---|
account |
string |
A conta de conexão |
classInfo |
string |
As informações da classe de conexão |
database |
string |
O banco de dados de conexão |
domain |
string |
O domínio de conexão |
emailAddress |
string |
O endereço de email de conexão |
kind |
string |
O tipo de conexão |
loginServer |
string |
O servidor de logon de conexão |
path |
string |
O caminho da conexão |
server |
string |
O servidor de conexão |
url |
string |
A URL de conexão |
DatasourceIdentity
Identidade efetiva para conectar fontes de dados do DirectQuery com o SSO (logon único) habilitado.
Nome | Tipo | Description |
---|---|---|
datasources |
Uma matriz de fontes de dados às quais essa identidade se aplica. |
|
identityBlob |
string |
Um blob para especificar a identidade. |
DatasourceSelector
Um objeto que identifica exclusivamente uma única fonte de dados por seus detalhes de conexão.
Nome | Tipo | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
connectionDetails |
Os detalhes da conexão da fonte de dados. Você pode obter os detalhes da conexão usando Obter Fontes de Dados para relatórios paginados e Obter Fontes de Dados para APIs de relatórios do powerbi . |
||||||||||||||||||||||||||||||||||||||||||||||||||||
datasourceType |
string |
O tipo da fonte de dados.
|
EffectiveIdentity
Define a identidade do usuário e as funções. Para obter mais informações, consulte Segurança em nível de linha com Power BI Embedded.
Nome | Tipo | Description |
---|---|---|
auditableContext |
string |
O contexto auditável EffectiveIdentity. Se esse parâmetro for fornecido e não estiver vazio, ele habilitará a auditoria da EffectiveIdentity e seu valor será definido como o nome de usuário no registro de auditoria. Caso contrário, o contexto EffectiveIdentity será omitido do registro de auditoria GenerateToken. |
customData |
string |
Dados personalizados usados para aplicar regras de segurança em nível de linha. Compatível apenas com a conexão dinâmica com modelos de Azure Analysis Services e modelos de nuvem. |
datasets |
string[] |
Uma matriz de conjuntos de dados para os quais essa identidade se aplica |
identityBlob |
Um blob que especifica uma identidade. Compatível apenas com conjuntos de dados com uma conexão DirectQuery com SQL do Azure. |
|
reports |
string[] |
Uma matriz de relatórios para os quais essa identidade se aplica. Há suporte apenas para relatórios paginados. |
roles |
string[] |
Uma matriz de funções RLS (segurança em nível de linha) dentro de um token que aplica regras RLS. Uma identidade pode conter até 50 funções. Uma função pode conter qualquer caractere, exceto |
username |
string |
O nome de usuário efetivo em um token que aplica regras de segurança em nível de linha. Para um modelo local, o nome de usuário pode conter alfanuméricos ou qualquer um dos seguintes caracteres |
EmbedToken
Um token de inserção do Power BI
Nome | Tipo | Description |
---|---|---|
expiration |
string |
A data e hora (UTC) da expiração do token |
token |
string |
O token de inserção |
tokenId |
string |
A ID do token exclusivo. Por meio de logs de auditoria, a ID do token pode ser usada para correlacionar operações que usam o token com a operação de geração. |
GenerateTokenRequestV2
Solicitação de geração de token do Power BI V2
Nome | Tipo | Description |
---|---|---|
datasets |
Uma lista de conjuntos de dados |
|
datasourceIdentities |
Lista de identidades a serem usadas ao se conectar a fontes de dados com o SSO (Sign-On único) habilitado. |
|
identities |
A lista de identidades a serem usadas para regras de segurança em nível de linha |
|
lifetimeInMinutes |
integer |
O tempo de vida máximo do token em minutos, começando a partir do momento em que ele foi gerado. Pode ser usado para reduzir o tempo de expiração do token, mas não para estendê-lo. O valor deve ser um inteiro positivo. Zero ( |
reports |
Uma lista de relatórios |
|
targetWorkspaces |
A lista de workspaces em que o token de inserção permitirá salvar |
GenerateTokenRequestV2Dataset
Um objeto de conjunto de dados em GenerateTokenRequestV2
Nome | Tipo | Description |
---|---|---|
id |
string |
A ID do conjunto de dados |
xmlaPermissions |
Permissões XMLA |
GenerateTokenRequestV2Report
Um objeto de relatório em GenerateTokenRequestV2
Nome | Tipo | Description |
---|---|---|
allowEdit |
boolean |
Se o token de inserção gerado dá suporte à edição de relatório |
id |
string |
A ID do relatório |
GenerateTokenRequestV2TargetWorkspace
Um objeto de workspace em GenerateTokenRequestV2
Nome | Tipo | Description |
---|---|---|
id |
string |
A ID do workspace |
IdentityBlob
Um blob para especificar uma identidade. Compatível apenas com conjuntos de dados com uma conexão DirectQuery com SQL do Azure
Nome | Tipo | Description |
---|---|---|
value |
string |
Um token de acesso OAuth 2.0 para SQL do Azure |
XmlaPermissions
Permissões XMLA
Nome | Tipo | Description |
---|---|---|
Off |
string |
Indica que o token de inserção gerado não concede permissões de acesso ao ponto de extremidade XMLA do conjunto de dados. |
ReadOnly |
string |
Indica que o token de inserção gerado concede permissões de acesso de leitura ao ponto de extremidade XMLA do conjunto de dados. |