Solucionar problemas do aplicativo inserido
Este artigo discute alguns problemas comuns que podem surgir ao inserir conteúdo do Power BI.
Ferramentas de solução de problemas
Rastreamento 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 no computador cliente. Essa ferramenta pode mostrar erros e outras informações relacionadas.
F12 no navegador para depuração de front-end
A chave F12 inicia a janela do desenvolvedor em seu navegador. Essa ferramenta permite que você examine o tráfego de rede e veja outras informações valiosas.
Extrair detalhes de erro da resposta do Power BI
Este snippet 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 em log a ID da Solicitação (e os detalhes do erro para solução de problemas). Forneça a ID da Solicitação ao se aproximar do suporte da Microsoft.
Registro de aplicativo
Falha no registro do aplicativo
Mensagens de erro no portal do Azure ou na página de registro de aplicativo do 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 o serviço do Power BI não for exibido na lista de APIs, será uma indicação de que nenhum usuário está inscrito no Power BI.
Qual é a diferença entre uma ID de objeto de aplicativo e uma ID de objeto principal?
Quando você registra um app do Microsoft Entra, há dois parâmetros chamados ID de objeto. Esta seção explica a finalidade de cada parâmetro e como obtê-lo.
ID do objeto de aplicativo
A ID de objeto de aplicativo, também conhecida simplesmente como ID do objeto, é a ID exclusiva do seu objeto de aplicativo do Microsoft Entra.
Para obter a ID de objeto do aplicativo, navegue até seu aplicativo do Microsoft Entra e copie-a da Visão geral.
ID do objeto Principal
A ID de objeto de entidade de serviço, também conhecida simplesmente como a ID de objeto, é a ID exclusiva do objeto de entidade de serviço associada ao seu aplicativo do Microsoft Entra.
Para obter a ID de objeto da entidade de serviço, acesse o app do Microsoft Entra e, na Visão geral, selecione o link do app em App gerenciado no diretório local.
Na seção Propriedades, copie a ID de objeto.
Autenticação
Falha na autenticação com AADSTS70002 ou AADSTS50053
(AADSTS70002: erro ao validar credenciais. AADSTS50053: você tentou entrar muitas vezes com uma ID de Usuário ou senha incorreta)
Se você estiver usando o Power BI Embedded e a autenticação direta do Microsoft Entra, poderá receber uma mensagem como a mensagem anterior ao tentar entrar, pois a autenticação direta não está habilitada.
Você pode reativar a autenticação direta usando uma política do Microsoft Entra com o escopo da organização ou uma entidade de serviço.
Recomendamos que você habilite essa política apenas por aplicativo.
Para criar essa política, você precisará ser um Administrador Global do diretório em que a política atribuída será criada. Aqui está um script de exemplo para criar a política e atribuí-la ao SP para este aplicativo:
Execute os seguintes comandos do PowerShell linha a 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 propagação antes do teste.
Falha na geração do token ao fornecer a identidade em vigor
Por motivos diferentes, pode haver falha em GenerateToken
com a identidade em vigor fornecida:
- O modelo semântico não dá suporte à identidade efetiva.
- O nome de usuário não foi fornecido.
- A função não foi fornecida.
DatasetId
não foi fornecido.- O usuário não tem as permissões corretas.
Para determinar o problema, tente as seguintes etapas:
- Execute para obter o conjunto de dados. A propriedade
IsEffectiveIdentityRequired
é verdadeira? - O nome de usuário é necessário para qualquer
EffectiveIdentity
. - Se
IsEffectiveIdentityRolesRequired
for verdadeira, a função será necessária. DatasetId
é necessário para qualquerEffectiveIdentity
.- Para o Analysis Services, o usuário mestre precisa 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 durante a concessão de consentimento, obtém 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, acesse Microsoft Entra ID>Usuários e grupos>Configurações de usuário.
- Habilite a configuração Os usuários podem consentir com o acesso dos apps aos dados da empresa em seus nomes e salve as alterações.
- Um administrador pode conceder permissões ao aplicativo , seja para o locatário inteiro ou para um usuário específico.
Erro CS1061
Baixe Microsoft.IdentityModel.Clients.ActiveDirectory se você tiver 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 do Microsoft Entra para um locatário diferente (usuário convidado)
Ao realizar uma inserção na organização, para permitir que os usuários convidados do Microsoft Entra acessem seu conteúdo, especifique a ID do locatário no parâmetro authorityUri
.
URL para autenticar no tenant 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 localizar 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 primário.
Para saber mais, confira Como tornar seu app multilocatário.
Fontes de dados
O ISV deseja 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 diferentes credenciais a cada contexto dos usuários principais e incorpore usando o token do Microsoft Entra desse usuário.
Solucionar problemas do aplicativo inserido com o objeto IError
Use o objeto IError retornado pelo evento de erro do SDK do JavaScript para depurar o app e entender melhor a causa dos erros.
Depois de adquirir o objeto IError, você deve examinar a tabela de erros comuns adequada para o tipo de incorporação que você está usando. Compare as propriedades IError com as da tabela e encontre os possíveis motivos para a falha.
Erros típicos ao inserir para usuários do Power BI
Mensagem | Mensagem detalhada | Código de erro | Possíveis motivos |
---|---|---|---|
TokenExpired | Reenvie com um novo token de acesso, pois o token de acesso expirou. | 403 | Token expirado |
PowerBIEntityNotFound | Falha ao obter relatório | 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 | Falha ao obter relatório | 401 | |
TokenExpired | O token de acesso expirou. Faça o reenvio com um novo token de acesso. Não foi possível renderizar um visual de relatório intitulado: título do visual | N/A | |
OpenConnectionError | Não é possível exibir o visual. Não foi possível renderizar um visual de relatório intitulado: título do visual | N/A | Capacidade pausada ou excluída enquanto um relatório relacionado a ela estava aberto em uma sessão |
ExplorationContainer_FailedToLoadModel_DefaultDetails | Não foi possível carregar o esquema de modelo associado a este relatório. Verifique se você tem uma conexão com o servidor e tente novamente. | N/A |
Erros típicos ao inserir para usuários que não são do Power BI (usando um Token de Inserção)
Mensagem | Mensagem detalhada | Código de erro | Possíveis motivos |
---|---|---|---|
TokenExpired | O token de acesso expirou, submeter novamente com um novo token de acesso | 403 | Token expirado |
FalhaAoCarregarRelatório | Falha ao obter relatório | 404 | |
Falha ao Carregar Relatório | Falha ao obter relatório | 403 | ID do relatório não corresponde ao token |
FalhaAoCarregarRelatório | Falha ao obter relatório | 500 | A ID de relatório fornecida não é um GUID |
Parâmetros inválidos | Parâmetro powerbiToken não especificado | N/A | |
FalhaNoCarregamentoDoRelatório | Falha ao inicializar – Não foi possível resolver o cluster | 403 | Tipo de token incorreto ou token inválido |
PowerBINotAuthorizedException | Falha ao obter relatório | 401 | ID de grupo incorreta/não autorizada |
TokenExpired | O token de acesso expirou, reenvie com um novo token de acesso. Não foi possível renderizar um visual de relatório intitulado: título do visual | N/A | |
OpenConnectionError | Não é possível exibir o visual. Não foi possível renderizar um visual de relatório intitulado: título do visual | N/A | Capacidade pausada ou excluída enquanto um relatório relacionado a ela estava aberto em uma sessão |
ExplorationContainer_FailedToLoadModel_DefaultDetails | Não foi possível carregar o esquema de modelo associado a este relatório. Verifique se você tem uma conexão com o servidor e tente novamente. | N/A |
Falha ao obter relatório – Erro 401 – Resolvido por conta própria
No cenário em que o usuário é proprietário dos dados, ele pode receber um erro 401 que é resolvido por conta própria depois que ele acessa o portal do Power BI. Quando o erro 401 ocorrer, adicione a chamada RefreshUser Permissions ao app, conforme explicado em Atualizar permissões do usuário.
Modelos semânticos
Gerenciar 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. Você não pode controlar permissões de exibição para dados brutos e agregados separadamente no mesmo modelo semântico.
Para gerenciar qual parte dos dados seus usuários podem exibir, use um dos seguintes métodos:
Filtragem em nível de linha usando a RLS (segurança em nível de linha) do Power BI.
Separe os dados em modelos semânticos diferentes. Por exemplo, você pode criar um modelo semântico que contenha apenas dados agregados e dê aos usuários acesso somente a esse modelo semântico.
Renderização de conteúdo
Para resolver problemas de renderização em itens inseridos do Power BI (como relatórios e dashboards), examine esta seção.
Verifique se o item do Power BI é carregado no serviço do Power BI
Para descartar problemas com o aplicativo ou as APIs de inserção, verifique se o item pode ser exibido no serviço do Power BI (powerbi.com).
Verificar se o item do Power BI é carregado no playground da análise integrada do Power BI
Para eliminar problemas com o app, verifique se o item do Power BI pode ser exibido no playground da análise integrada do Power BI.
Verifique se o token de acesso não expirou
Para fins de segurança, os tokens de acesso (um token do Microsoft Entra ou um token de inserção) têm um tempo de vida limitado. Você deve monitorar constantemente o token de acesso e atualizá-lo, se necessário. Para saber mais, confira Atualizar o token de acesso.
Desempenho
Para obter o conteúdo inserido com melhor desempenho, recomendamos que você siga as práticas recomendadas de análise integrada do Power BI.
Conteúdo relacionado
Perguntas Frequentes do Power BI Embedded
Mais perguntas? Perguntar à Comunidade do Power BI