Solucionar problemas do aplicativo incorporado
Este artigo discute alguns problemas comuns que podem surgir ao incorporar conteúdo do Power BI.
Ferramentas de resolução de problemas
Fiddler Trace
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.
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.
Extrair detalhes de 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 na aplicação
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 serviço do Power BI listado na lista de APIs, nenhum usuário está 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
O identificador (ID) do objeto de aplicação , também conhecido simplesmente como identificador do objeto , é o identificador exclusivo do seu objeto de aplicação Microsoft Entra.
Para obter o ID do objeto do aplicativo, navegue até o aplicativo Microsoft Entra e copie-o do Visão geral.
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é à aplicação Microsoft Entra e, na Descrição Geral, selecione o link da aplicação em Aplicação gerida no diretório local.
Na seção Propriedades, copie o ID do objeto.
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 um de política do Microsoft Entra do com escopo para a organização ou uma entidade de serviço .
Recomendamos que você habilite essa política apenas por aplicativo.
Para criar esta política, você precisa ser um Administrador Global no 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 ao SP para esta aplicação:
Instale o Microsoft Graph PowerShell SDK.
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.
Falha na geração de token 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 e obtenha o conjunto de dados. A propriedade
IsEffectiveIdentityRequired
é verdadeira? - O nome de usuário é necessário para qualquer
EffectiveIdentity
. - Se
IsEffectiveIdentityRolesRequired
for verdadeiro, a função é necessária. -
DatasetId
é necessário para qualquerEffectiveIdentity
. - Para o Analysis Services, o usuário mestre deve ser um administrador de gateway.
AADSTS90094: A concessão requer permissão 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.
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):
- No portal do Azure, navegue até Microsoft Entra ID>Utilizadores e grupos>Configurações de utilizador.
- Habilite o Os usuários podem consentir que os aplicativos acessem os dados da empresa em seu nome configuração e salvem as alterações.
- 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 inquilino diferente (utilizador convidado)
Quando você 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 parâmetro authorityUri
.
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 a sua ID de inquilino, pode utilizar as instruções em Localizar o ID de inquilino do Microsoft Entra e o nome de domínio principal.
Para obter mais informações, consulte Tornando seu aplicativo multilocatário.
Fontes 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 diferentes credenciais a cada um dos contextos dos utilizadores principais e incorpore usando o token Microsoft Entra desse utilizador.
Solucionar problemas do aplicativo incorporado com o objeto IError
Use o objeto IError retornado pelo evento de erro do SDK JavaScript para depurar seu aplicativo e entender melhor a causa dos erros.
Depois de adquirir o objeto IError, deve examinar a tabela de erros comuns apropriada, adequada ao tipo de incorporação que está a usar. Compare as propriedades 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) |
---|---|---|---|
Token Expirado | O token de acesso expirou, reenvie com um novo token de acesso | 403 | Token expirado |
PowerBIEntityNotFound | Obter relatório falhou | 404 | |
Parâmetros inválidos | parâmetro powerbiToken não especificado | N/A | |
FalhaAoCarregarRelatório | Falha ao inicializar - Não foi possível resolver o cluster | 403 | |
PowerBINotAuthorizedException | Obter relatório falhou | 401 | |
Token Expirado | 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 | |
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 |
ContêinerExploração_FalhaAoCarregarModelo_DetalhesPadrão | 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 |
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) possível(s) |
---|---|---|---|
TokenExpired | O token de acesso expirou, reenvie com um novo token de acesso | 403 | Token expirado |
FalhaAoCarregarRelatório | Não foi possível obter o relatório. | 404 | |
Falha no Carregamento do Relatório | Obter relatório falhou | 403 | O ID do Relatório não corresponde ao token |
FalhaAoCarregarRelatório | 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 | |
FalhaAoCarregarRelatório | Falha ao inicializar - Não foi possível resolver o cluster | 403 | Tipo de token errado ou token incorreto |
PowerBINotAuthorizedException (Exceção de Não Autorizado PowerBI) | Obter relatório falhou | 401 | ID de grupo errado/não autorizado |
Token Expirado | 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 | |
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 eliminada enquanto um relatório relacionado com a capacidade estava aberto numa 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 |
Obter relatório falha - erro 401 - resolva-se a si mesmo
No cenário em que o utilizador possui os dados, às vezes, os utilizadores recebem um erro 401 que se resolve por si só depois de acederem ao 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 o Power BI segurança em nível de linha (RLS).
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 o aplicativo ou com as APIs de incorporação, verifique se o item pode ser exibido no serviço Power BI (powerbi.com).
Verifique se o item do Power BI se carrega no ambiente de análise incorporada do Power BI
Para eliminar problemas com a sua aplicação, verifique se o ítem do Power BI pode ser visualizado na área de testes da 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 conteúdo de melhor desempenho, recomendamos que siga as melhores práticas de análise embebida do Power BI.
Conteúdo relacionado
Perguntas frequentes sobre o Power BI Embedded
Mais perguntas? Pergunte à Comunidade do Power BI