Pode ser difícil resolver problemas de autenticação ao usar a incorporação assinada para seu conteúdo do Looker. Há algumas abordagens diferentes que você pode usar para tentar diagnosticar problemas, e você vai escolher uma delas com base em para onde seus redirecionamentos estão enviando os usuários. As dicas desta página pressupõem que você está gerando o URL de incorporação assinado usando um script semelhante aos do repositório de exemplos de incorporação do GitHub do Looker, a menos que seja indicado o contrário.
O que deve ser feito primeiro
Antes de começar a incorporação, verifique se o secret de incorporação foi gerado no painel Administrador e se o conteúdo incorporado está funcionando no Modo de Produção, não apenas no Modo de Desenvolvimento.
Se você tiver permissões de administrador, sudo como o usuário de incorporação para verificar se o conteúdo está funcional. Se você receber o erro Oops, we can't find that page
, o problema provavelmente está relacionado às permissões ou ao conteúdo e não a um problema de autenticação. Se o usuário de incorporação não aparecer na página Usuários do painel Administrador do Looker, significa que o usuário não foi criado e o URL de incorporação está com falha. Tente solucionar o problema usando algumas das sugestões e recursos listados nesta página.
Se a instância for auto-hospedada, verifique se o servidor cliente pode acessar o servidor do Looker. Se os dados entre o cliente e o servidor forem transmitidos pela Internet pública, verifique se o SSL (HTTPS) está sendo usado.
O restante desta página descreve erros e outros problemas que você pode encontrar, além de etapas para resolvê-los.
Estou sendo redirecionado para uma página de login ou uma página de "Falha de logon único"
Se você estiver sendo redirecionado para a página de login ou para uma página com o erro Single sign on failure. Please contact an adinistrator.
, isso normalmente indica que a autenticação de incorporação assinada não está funcionando corretamente.
Primeiro, gere um novo URL de incorporação assinado e teste-o no Validador de URI de incorporação na página Incorporar do painel Administrador do Looker. Às vezes, o validador de URIs incorporados pode revelar informações valiosas sobre o motivo de um erro.
O validador de URI de incorporação aparece como esperado?
Se você estiver na página Incorporar do painel Administrador do Looker e o validador de URI de incorporação não aparecer na página, isso sugere que a incorporação assinada ainda não foi ativada. Você precisará ativar a incorporação assinada.
Estou recebendo o erro 'signature param' failed to authenticate
Esse erro indica que a assinatura gerada pelo script não está funcionando como esperado. Consulte as seções a seguir para conferir possíveis soluções:
Os segredos de incorporação são iguais?
A chave secreta de incorporação na instância do Looker precisa ser idêntica à que foi assinada no script de geração do URL de incorporação assinado. Se você não tiver certeza se isso é verdade, selecione Redefinir chave secreta para gerar uma nova e adicioná-la ao script. Isso vai corromper todas as incorporações que usaram a chave anterior.
Tente usar o endpointCreate Signed Embed Url
para criar o URL de incorporação, especificando o segredo no script para osecret_id
no corpo da chamada. A resposta informará se o secret que você está usando for inválido.
A string da assinatura está na ordem correta?
Os parâmetros de incorporação na string de assinatura precisam estar na ordem correta no script de geração de URL. A ordem correta está documentada na página de documentação Inserção assinada.
A string de assinatura, quando mostrada, deve ficar assim antes de ser codificada:
company_name.looker.com /login/embed/embed%2Fdashboards%2F123 "ac786cbc06162b1edde3a8b35920a93e" 15852443573600 "test_external_user_id" ["access_data","see_user_dashboards"] ["test_model"] [] "test group space" {"test_user_attribute":"yes"} {}
Depois de assinar a string de assinatura com a chave secreta incorporada, verifique se os parâmetros no URL final correspondem aos parâmetros especificados na string de assinatura. Confira se os caracteres especiais, como +
e /
, estão codificados nos parâmetros de URL (por exemplo, +
pode ser interpretado como um espaço caso não esteja codificado corretamente) e se não há quebras de linha no URL incorporado assinado, que podem ser perdidas após a codificação.
Compare seu script com nossos exemplos de script para verificar se ele segue todas as etapas adequadas e se a assinatura está usando a criptografia correta.
Estou recebendo o erro This request includes invalid params: ["embed_domain"]
Antes de começar a resolver esse erro, observe que o parâmetro embed_domain
é necessário apenas se o script estiver usando listeners de eventos JavaScript, o que geralmente não é um requisito para uma implementação de incorporação assinada básica. Se o app não precisar detectar eventos JavaScript, a opção mais simples é se livrar completamente do parâmetro embed_domain
.
Se você precisar usar eventos JavaScript no seu aplicativo de incorporação, verifique o script de geração de URL para ver onde o parâmetro embed_domain
está sendo adicionado. O erro geralmente significa que o parâmetro embed_domain
foi acidentalmente colocado como um parâmetro de incorporação assinado em vez de diretamente no embed_url
. O script não formatará o parâmetro embed_domain
corretamente, a menos que ele faça parte do embed_url
, e ele precisa ser adicionado após o URL de incorporação e antes de qualquer parâmetro.
Veja como ele vai ficar quando o parâmetro embed_domain
for especificado corretamente no script:
embed_url: "/embed/dashboards/3?embed_domain=https://company.com"
Se você estiver usando o endpointCreate Signed Embed Url
, o parâmetroembed_domain
deverá ser colocado no final dotarget_url
.
Estou recebendo o erro 'nonce' param already used this hour
O valor do parâmetro nonce
não pode ser repetido na mesma hora e precisa ter menos de 255 caracteres. Portanto, esse erro vai aparecer se você estiver testando um URL que já foi acessado. Verifique se você está gerando um novo URL de incorporação que ainda não foi carregado no seu navegador e se o valor de uso único está mudando e não é reutilizado.
Estou sendo redirecionado para um erro Uh-Oh, Something went wrong
Se esse erro aparecer, entre em contato com o suporte do Looker para receber ajuda.
Estou sendo redirecionado para uma página com a mensagem de erro 401 You are not authenticated to view this page.
Se você já tentou todas as etapas de solução de problemas aplicáveis e o problema 401 persiste, provavelmente seu navegador está bloqueando cookies de terceiros. A maioria dos navegadores está se tornando mais restritiva e vai adotar por padrão uma política de cookies que bloqueia esses cookies. Por exemplo, a configuração Impedir rastreamento entre sites do Safari é ativada por padrão, assim como a configuração Bloquear cookies de terceiros na navegação anônima do Chrome.
Se o aplicativo estiver incorporando conteúdo do Looker e o nome de domínio da instância do Looker terminar em company.looker.com
, o navegador não vai autenticar o iframe incorporado em vários domínios, a menos que as configurações de privacidade de cookies do navegador sejam modificadas.
Instâncias hospedadas pelo Looker
Os administradores hospedados pelo Looker que não quiserem que os usuários ativem manualmente os cookies de terceiros no navegador precisarão mudar o nome de domínio da instância hospedada pelo Looker. Por exemplo, as instâncias hospedadas pelo Looker costumam ter o formato https://<hostname>.<subdomain>.<domain>.com
. Se o nome de domínio do Looker for alterado, ele não será mais considerado um domínio de terceiros. Consulte O que acontece se o URL mudar para minha instância do Looker? Para mais informações, acesse a página de práticas recomendadas.
Se você quiser adicionar um domínio personalizado à sua instância do Looker, entre em contato com o suporte do Looker para definir a configuração de DNS necessária.
Instâncias auto-hospedadas
Se você estiver hospedando a instância do Looker por conta própria, altere as entradas de DNS dela para verificar se o aplicativo que usa a incorporação assinada está no mesmo domínio de base dessa instância.
O Chrome também exige que qualquer cookie de sessão com a flag samesite=none
especifique secure
. O Looker não vai sinalizar secure
se a instância do Looker não tiver uma --ssl-provided-externally-by=<s>
flag de inicialização. Portanto, configure essa flag de inicialização.
Ainda estou com problemas. o que eu faço agora?
Se você ainda tiver problemas depois de tentar as sugestões desta página, entre em contato com seu contato do Looker ou acesse o Suporte do Looker para abrir um tíquete.