Resolução de problemas na sua aplicação incorporada

Este artigo discute alguns problemas comuns que podem surgir ao incorporar conteúdo do Power BI.

Ferramentas de resolução de problemas

Rastreio do Fiddler

Fiddler é uma ferramenta gratuita da Telerik que monitora o tráfego HTTP. Você pode ver o tráfego com as APIs do Power BI da máquina cliente. Esta ferramenta pode mostrar erros e outras informações relacionadas.

Captura de ecrã da janela de saída da ferramenta Fiddler, que mostra o tráfego HTTP da API do Power BI.

F12 no navegador para depuração de frontend

A tecla F12 inicia a janela do desenvolvedor no seu navegador. Esta ferramenta permite que você olhe para o tráfego de rede e ver outras informações valiosas.

Captura de tela da guia Rede da janela do desenvolvedor do navegador da Web, que mostra o tráfego de rede.

Extrair detalhes do erro da resposta do Power BI

Este trecho de código mostra como extrair os detalhes do erro de uma exceção HTTP:

public static string GetExceptionText(this HttpOperationException exc)
{
    var errorText = string.Format("Request: {0}\r\nStatus: {1} ({2})\r\nResponse: {3}",
    exc.Request.Content, exc.Response.StatusCode, (int)exc.Response.StatusCode, exc.Response.Content);
    if (exc.Response.Headers.ContainsKey("RequestId"))
    {
        var requestId = exc.Response.Headers["RequestId"].FirstOrDefault();
        errorText += string.Format("\r\nRequestId: {0}", requestId);
    }

    return errorText;
}

Recomendamos registrar a ID da solicitação (e os detalhes do erro para solução de problemas). Forneça a ID da solicitação ao entrar em contato com o suporte da Microsoft.

Registo de aplicações

Falha no registo da aplicação

As mensagens de erro no portal do Azure ou na página de registro do aplicativo Power BI notificarão você se você não tiver privilégios suficientes para registrar seu aplicativo. Para registrar um aplicativo, você deve ser um administrador no locatário do Microsoft Entra ou os registros de aplicativo devem ser habilitados para usuários não administradores.

O serviço do Power BI não aparece no portal do Azure ao registrar um novo aplicativo

Pelo menos um usuário deve estar inscrito no Power BI. Se você não vir o serviço do Power BI listado na lista de APIs, nenhum usuário estará inscrito no Power BI.

Qual é a diferença entre um ID de objeto de aplicativo e um ID de objeto principal?

Quando você registra um aplicativo Microsoft Entra, há dois parâmetros chamados ID do objeto. Esta seção explica a finalidade de cada parâmetro e como obtê-lo.

ID do objeto do aplicativo

A ID do objeto do aplicativo, também conhecida simplesmente como ID do objeto, é a ID exclusiva do seu objeto de aplicativo do Microsoft Entra.

Para obter a ID do objeto do aplicativo, navegue até o aplicativo Microsoft Entra e copie-o da Visão geral.

Captura de tela da janela do portal do Azure, que mostra a ID do objeto na folha Visão geral de um aplicativo Microsoft Entra.

ID do objeto principal

A ID do objeto principal, também conhecida simplesmente como ID do objeto, é a ID exclusiva do objeto principal de serviço associado ao seu aplicativo Microsoft Entra.

Para obter a ID do objeto principal, navegue até o aplicativo Microsoft Entra e, na Visão geral, selecione o link do aplicativo em Aplicativo gerenciado no diretório local.

Captura de tela da janela do portal do Azure, que mostra a opção Aplicativo gerenciado no diretório local na folha Visão geral de um aplicativo Microsoft Entra.

Na seção Propriedades, copie a ID do objeto.

Captura de tela da janela do portal do Azure, que mostra a ID do objeto principal na seção de propriedades na folha Visão geral de um aplicativo Microsoft Entra.

Autenticação

Falha na autenticação com AADSTS70002 ou AADSTS50053

(AADSTS70002: Erro ao validar credenciais. AADSTS50053: Tentou iniciar sessão demasiadas vezes com um ID de utilizador ou palavra-passe incorretos)

Se estiver a utilizar a autenticação direta do Power BI Embedded e do Microsoft Entra, poderá receber uma mensagem como a mensagem anterior quando tentar iniciar sessão, porque a autenticação direta não está ativada.

Você pode ativar novamente a autenticação direta usando uma política do Microsoft Entra com escopo para a organização ou uma entidade de serviço.

Recomendamos que você habilite essa política apenas por aplicativo.

Para criar essa política, você precisa ser um Administrador Global para o diretório onde está criando a política e atribuindo-a. Aqui está um script de exemplo para criar a política e atribuí-la à controladora de armazenamento para este aplicativo:

  1. Instale o SDK do Microsoft Graph PowerShell.

  2. Execute os seguintes comandos do PowerShell, linha por linha (certificando-se de que a variável $sp não tenha mais de um aplicativo como resultado).

    Connect-MgGraph -Scopes "Directory.Read.All","Policy.ReadWrite.ApplicationConfiguration"
    
    $sp = Get-MgServicePrincipal -Filter "DisplayName eq 'Name_Of_Application'"
    
    $policy = New-MgBetaPolicyActivityBasedTimeoutPolicy -Definition @("{`"AllowCloudPasswordValidation`":true}") `
       -DisplayName EnableDirectAuth -IsOrganizationDefault:$false
    
    $params = @{
       "@odata.id" = "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/$policy.Id"
    }
    New-MgBetaServicePrincipalClaimMappingPolicyByRef -ServicePrincipalId $sp.Id `
       -BodyParameter $params
    

Depois de atribuir a política, aguarde aproximadamente 15 a 20 segundos para a propagação antes de testar.

Gerar token falha ao fornecer identidade efetiva

GenerateToken pode falhar com a identidade efetiva fornecida por alguns motivos diferentes:

  • O modelo semântico não suporta identidade efetiva.
  • O nome de usuário não foi fornecido.
  • O papel não foi fornecido.
  • DatasetId não foi fornecido.
  • O usuário não tem as permissões corretas.

Para determinar o problema, tente as seguintes etapas:

  • Execute get dataset. A propriedade IsEffectiveIdentityRequired é verdadeira?
  • O nome de usuário é necessário para qualquer EffectiveIdentityarquivo .
  • Se IsEffectiveIdentityRolesRequired for true, Role é obrigatório.
  • DatasetId é necessário para qualquer EffectiveIdentityarquivo .
  • Para o Analysis Services, o usuário mestre deve ser um administrador de gateway.

AADSTS90094: A concessão requer permissões de administrador

Sintomas:

Quando um usuário não administrador tenta entrar em um aplicativo pela primeira vez ao conceder consentimento, recebe um dos seguintes erros:

  •   ConsentTest needs permission to access resources in your organization that only an admin can grant. Ask an admin to grant permission to this app before you can use it.
    
  •   AADSTS90094: The grant requires admin permission.
    

    Captura de ecrã da caixa de diálogo de início de sessão da janela do portal do Azure, que mostra o erro de permissão Teste de Consentimento.

Um usuário administrador pode entrar e conceder consentimento com êxito.

Causa raiz:

O consentimento do usuário está desabilitado para o locatário.

Várias correções são possíveis:

  • Habilite o consentimento do usuário para todo o locatário (todos os usuários, todos os aplicativos):
  1. No portal do Azure, navegue até Configurações de usuários e grupos>do Microsoft Entra ID.>
  2. Habilitar os usuários podem consentir que os aplicativos acessem os dados da empresa em seu nome e salve as alterações.

Captura de ecrã do portal do Azure.

  • Um administrador pode conceder permissões ao aplicativo - para todo o locatário ou para um usuário específico.

Erro CS1061

Baixe Microsoft.IdentityModel.Clients.ActiveDirectory se você enfrentar o seguinte erro:

'AuthenticationContext' does not contain a definition for 'AcquireToken' and no accessible 'AcquireToken' accepting a first argument of type 'AuthenticationContext' could be found (are you missing a using directive or an assembly reference?)

Token Microsoft Entra para um locatário diferente (usuário convidado)

Ao incorporar para sua organização, para permitir que os usuários convidados do Microsoft Entra acessem seu conteúdo, você precisa especificar a ID do locatário no authorityUri parâmetro.

  • URL para autenticação no locatário da sua organização:

    https://login.microsoftonline.com/common/v2.0

  • URL para autenticar um usuário convidado do Microsoft Entra:

    https://login.microsoftonline.com/<tenant ID>

Para encontrar sua ID de locatário, você pode usar as instruções em Localizar a ID do locatário do Microsoft Entra e o nome de domínio principal.

Para obter mais informações, consulte Tornando seu aplicativo multilocatário.

Origens de dados

O ISV quer ter credenciais diferentes para a mesma fonte de dados

Uma fonte de dados pode ter um único conjunto de credenciais para um usuário mestre. Se você precisar usar credenciais diferentes, crie mais usuários mestres. Em seguida, atribua as credenciais diferentes a cada um dos contextos dos usuários mestres e incorpore usando o token Microsoft Entra desse usuário.

Solucionar problemas do aplicativo incorporado com o objeto IError

Use o objeto IError retornado pelo evento de erro do JavaScript SDK para depurar seu aplicativo e entender melhor a causa dos erros.

Depois de adquirir o objeto IErmor, você deve examinar a tabela de erros comuns apropriada que se encaixa no tipo de incorporação que você está usando. Compare as propriedades do IError com as da tabela e encontre o(s) possível(s) motivo(s) para a falha.

Erros típicos ao incorporar para usuários do Power BI

Mensagem Mensagem detalhada Código de Erro Motivo(s) possível(s)
TokenExpired O token de acesso expirou, reenvie com um novo token de acesso 403 Token expirado
PowerBIEntityNotFound Obter relatório falhou 404
  • ID de relatório errado
  • O relatório não existe
  • Parâmetros inválidos parâmetro powerbiToken não especificado N/A
  • Nenhum token de acesso fornecido
  • Nenhum ID de relatório fornecido
  • LoadReportFailed Falha ao inicializar - Não foi possível resolver o cluster 403
  • Token de acesso incorreto
  • O tipo de incorporação não corresponde ao tipo de token
  • PowerBINotAuthorizedException Obter relatório falhou 401
  • ID de grupo errado
  • Grupo não autorizado
  • TokenExpired O token de acesso expirou, reenvie com um novo token de acesso. Não foi possível renderizar um relatório visual intitulado: título visual N/A
  • Consultar dados
  • Token expirado
  • OpenConnectionError Não é possível exibir o visual. Não foi possível renderizar um relatório visual intitulado: título visual N/A Capacidade pausada ou excluída enquanto um relatório relacionado à capacidade estava aberto em uma sessão
    ExplorationContainer_FailedToLoadModel_DefaultDetails Não foi possível carregar o esquema de modelo associado a este relatório. Certifique-se de que tem uma ligação ao servidor e tente novamente. N/A
  • Capacidade pausada
  • Capacidade suprimida
  • Erros típicos ao incorporar para usuários que não são do Power BI (usando um Token de Incorporação)

    Mensagem Mensagem detalhada Código de Erro Motivo(s)
    TokenExpired O token de acesso expirou, reenvie com um novo token de acesso 403 Token expirado
    LoadReportFailed Obter relatório falhou 404
  • ID de relatório errado
  • O relatório não existe
  • LoadReportFailed Obter relatório falhou 403 A ID do relatório não corresponde ao token
    LoadReportFailed Obter relatório falhou 500 O ID fornecido pelo relatório não é um GUID
    Parâmetros inválidos parâmetro powerbiToken não especificado N/A
  • Nenhum token de acesso fornecido
  • Nenhum ID de relatório fornecido
  • LoadReportFailed Falha ao inicializar - Não foi possível resolver o cluster 403 Tipo de token errado ou token incorreto
    PowerBINotAuthorizedException Obter relatório falhou 401 ID de grupo errado/não autorizado
    TokenExpired O token de acesso expirou, reenvie com um novo token de acesso. Não foi possível renderizar um relatório visual intitulado: título visual N/A
  • Consultar dados
  • Token expirado
  • OpenConnectionError Não é possível exibir o visual. Não foi possível renderizar um relatório visual intitulado: título visual N/A Capacidade pausada ou excluída enquanto um relatório relacionado à capacidade estava aberto em uma sessão
    ExplorationContainer_FailedToLoadModel_DefaultDetails Não foi possível carregar o esquema de modelo associado a este relatório. Certifique-se de que tem uma ligação ao servidor e tente novamente. N/A
  • Capacidade pausada
  • Capacidade suprimida
  • Obter relatório falha - erro 401 - resolva-se a si mesmo

    No cenário de dados de propriedade do usuário, às vezes os usuários receberão um erro 401 que se resolve depois de acessarem o portal do Power BI. Quando o erro 401 acontecer, adicione a chamada RefreshUser Permissions no aplicativo, conforme explicado em Atualizar permissões de usuário.

    Modelos semânticos

    Gerencie qual parte dos dados seus usuários podem ver

    Qualquer usuário com permissões de leitura para um modelo semântico pode ver todo o esquema (tabelas, colunas e medidas) e todos os dados. Não é possível controlar as permissões de visualização para dados brutos e agregados separadamente no mesmo modelo semântico.

    Para gerenciar qual parte dos dados seus usuários podem visualizar, use um dos seguintes métodos:

    • Filtragem em nível de linha usando RLS (segurança em nível de linha) do Power BI.

    • Segurança no nível do objeto (OLS).

    • Separe os dados em diferentes modelos semânticos. Por exemplo, você pode criar um modelo semântico que contenha apenas dados agregados e dar aos usuários acesso somente a esse modelo semântico.

    Renderização de conteúdo

    Para resolver problemas de renderização em itens incorporados do Power BI (como relatórios e painéis), revise esta seção.

    Verifique se o item do Power BI é carregado no serviço do Power BI

    Para excluir problemas com seu aplicativo ou as APIs de incorporação, verifique se o item pode ser exibido no serviço do Power BI (powerbi.com).

    Verifique se o item do Power BI é carregado no playground de análise incorporada do Power BI

    Para excluir problemas com seu aplicativo, verifique se o item do Power BI pode ser exibido no playground de análise incorporada do Power BI.

    Verifique se o token de acesso não expirou

    Por motivos de segurança, os tokens de acesso (um token do Microsoft Entra ou um token de incorporação) têm um tempo de vida limitado. Você deve monitorar constantemente seu token de acesso e atualizá-lo, se necessário. Para obter mais informações, consulte Atualizar o token de acesso.

    Desempenho

    Para obter o conteúdo incorporado com melhor desempenho, recomendamos que siga as práticas recomendadas de análise incorporada do Power BI.

    Incorporar ferramenta de configuração

    Você pode passar pela ferramenta de configuração de incorporação para baixar rapidamente um aplicativo de exemplo. Em seguida, você pode comparar seu aplicativo com o exemplo.

    Pré-requisitos

    Verifique se você tem todos os pré-requisitos adequados antes de usar a ferramenta de configuração de incorporação. Você precisa de uma conta do Power BI Pro e uma assinatura do Microsoft Azure .

    Problemas Comuns

    Alguns problemas comuns que você pode encontrar durante o teste com a ferramenta de configuração Incorporar são:

    Usando o aplicativo de exemplo Incorporar para seus clientes

    Se você estiver trabalhando com a incorporação para a experiência de seus clientes , salve e descompacte o arquivo PowerBI-Developer-Samples.zip . Em seguida, abra a pasta PowerBI-Developer-Samples-master\App Owns Data e execute o arquivo PowerBIEmbedded_AppOwnsData.sln .

    • Ao selecionar Conceder permissões (a etapa Conceder permissões), você obtém o seguinte erro:
    AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
    

    A solução é fechar o pop-up, esperar alguns segundos e tentar novamente. Talvez seja necessário repetir essa ação algumas vezes. Um intervalo de tempo faz com que o problema desde a conclusão do processo de registro do aplicativo até quando ele está disponível para APIs externas.

    • A seguinte mensagem de erro aparece ao executar o aplicativo de exemplo:
    Password is empty. Please fill password of Power BI username in web.config.
    

    Este erro ocorre porque o único valor que não está a ser injetado na aplicação de exemplo é a sua palavra-passe de utilizador. Abra o arquivo Web.config na solução e preencha o campo com a pbiPassword senha do usuário.

    • Se receber o erro:
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Você precisa usar uma conta do Microsoft Entra que não tenha o MFA habilitado.

    Utilizar o exemplo de aplicação de Incorporação para a sua organização

    Se você estiver trabalhando com a Incorporação para sua experiência na organização , salve e descompacte o arquivo PowerBI-Developer-Samples.zip . Em seguida, abra a pasta PowerBI-Developer-Samples-master\User Owns Data\integrate-report-web-app e execute o arquivo pbi-saas-embed-report.sln .

    • Quando você executa o aplicativo de exemplo Incorporar para sua organização , você recebe o seguinte erro:
    AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the application: <client ID>
    

    Esse erro ocorre porque a URL de redirecionamento especificada para o aplicativo de servidor Web é diferente da URL do exemplo. Se você quiser registrar o aplicativo de exemplo, use https://localhost:13526/ como a URL de redirecionamento.

    Se você quiser editar o aplicativo registrado, atualize o aplicativo registrado do Microsoft Entra, para que o aplicativo possa fornecer acesso às APIs da Web.

    Se você quiser editar seu perfil de usuário ou dados do Power BI, saiba como editar seus dados do Power BI.

    • Se receber o erro:
    AADSTS50079: The user is required to use multi-factor authentication.
    

    Você precisa usar uma conta do Microsoft Entra que não tenha o MFA habilitado.

    Para obter mais informações, consulte Perguntas frequentes sobre o Power BI Embedded.

    Para obter mais assistência, entre em contato com o suporte ou crie um tíquete de suporte por meio do portal do Azure e forneça as mensagens de erro encontradas.

    Perguntas frequentes sobre o Power BI Embedded

    Tem dúvidas? Pergunte à Comunidade do Power BI