Inserir um relatório com SSO (identidade baseada em token)

Aplica-se a:✅ Power BI análises incorporadas para seus clientes (o aplicativo é proprietário dos dados)

A identidade baseada em token permite que um ISV use um token de acesso do Microsoft Entra para passar a identidade de um cliente para um banco de dados SQL do Azure gerenciado no locatário do cliente.

Os clientes ISV que mantêm e gerenciam seus dados no Banco de Dados SQL do Azure podem manter seus dados seguros em seu locatário ao se integrarem com o Power BI Embedded no aplicativo ISV.

Ao gerar o token de inserção, especifique a identidade do usuário no SQL do Azure passando o token de acesso do Microsoft Entra desse usuário para o servidor SQL do Azure. O token de acesso é então usado para extrair do SQL do Azure apenas os dados relevantes para esse usuário para essa sessão específica.

Desenho de esquema mostrando ISV passando a identidade efetiva para o locatário do SQL e o cliente passando um token de incorporação de volta.

Importante

Limitações de SSO de dados próprios do aplicativo:

  • Em cenários de "App-owns-data" (autenticação por entidade de serviço ou usuário mestre), o SSO para fontes de dados do DirectQuery é suportado somente com Banco de Dados SQL do Azure.
  • Ao gerar um token de inserção com SSO, você deve fornecer um IdentityBlob para cada fonte de dados que tenha o SSO habilitado. Omitir o IdentityBlob faz com que a geração de token ou a execução da consulta falhem.

Configurar a identidade baseada em token

A identidade baseada em token funciona apenas para modelos DirectQuery em uma capacidade conectada a um Banco de Dados SQL do Azure configurado para permitir a autenticação do Microsoft Entra. Para usar a identidade baseada em token, a fonte de dados do modelo semântico deve ser configurada para usar as credenciais OAuth2 dos usuários finais. Saiba mais sobre a autenticação do Microsoft Entra para o Banco de Dados SQL do Azure.

Antes de configurar a identidade baseada em token, verifique:

  • A fonte de dados do DirectQuery é Banco de Dados SQL do Azure (a única fonte de dados de SSO com suporte para cenários de dados próprios de aplicativo).
  • O Banco de Dados SQL do Azure está configurado para Microsoft Entra autenticação.
  • Você tem o token de acesso Microsoft Entra do usuário para ser passado como IdentityBlob para o servidor SQL do Azure.
  1. No portal do Power BI, selecione Modelo semântico > Mais Opções (três pontos) > Configurações > Credenciais da fonte de dados > Editar credenciais.

    Opção de configurações de conjunto de dados de captura de tela no portal do Power BI.

  2. Marque a caixa de opção OAuth2.

    Captura de tela da configuração do servidor SQL do Azure.

Gerar um token de identidade

Para criar um token de acesso para o SQL do Azure, o aplicativo deve ter a permissão delegada de Acesso ao BD SQL do Azure e ao Data Warehouse para a API do Banco de Dados SQL do Azure na configuração de registro de aplicativo do Microsoft Entra no portal do Azure.

Captura de tela das configurações de registro de aplicativo do Microsoft Entra no portal do Azure. Autentique e adquira um token para o usuário do endpoint v2 do Azure AD para o seguinte escopo: https://database.windows.net/.default

Consulte as seguintes amostras de código MSAL para obter ajuda:

Gerar token de inserção

Para inserir um relatório com identidade baseada em token, gere um token de inserção que contenha a identidade da base de token do usuário ISV desejado. Veja os exemplos a seguir para gerar tokens de inserção para diferentes cenários.

Observação

Você deve incluir uma entrada datasourceIdentities com uma identityBlob válida para cada SQL do Azure base de dados que tenha o SSO habilitado. Se alguma fonte de dados habilitada para SSO estiver ausente identityBlob, a chamada de geração de token de inserção falhará ou a execução da consulta retornará um erro.

{
  "datasets": [
    {
      "id": "66ba5010-xxxx-xxxx-xxxx-f2bf0125abeb",
    }
  ],
  "reports": [
    {
      "allowEdit": false,
      "id": "9e6da541-xxxx-xxxx-xxxx-7d9442827cce"
    }
  ],
  "datasourceIdentities": [
    {
      "identityBlob": "eyJ…",
      "datasources": [
        {
          "datasourceType": "Sql",
          "connectionDetails": {
            "server": "YourServerName.database.windows.net",
            "database": "YourDataBaseName"
          }
        }
      ]
    }
  ]
}

O exemplo a seguir mostra um relatório de inserção do Power BI com SSO e RLS aplicados ao conjunto de dados:

Captura de tela de um relatório do Power BI inserido com SSO e RLS aplicados ao conjunto de dados.