Pode ser difícil resolver problemas de autenticação ao usar incorporação assinada para seu conteúdo do Looker. Há algumas abordagens diferentes que você pode adotar para tentar diagnosticar problemas. Escolha uma abordagem com base em para onde seus redirecionamentos estão enviando os usuários. As dicas nesta página pressupõem que você está gerando seu 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 de outra forma.
O que tentar primeiro
Antes de começar a incorporar, verifique se o secret de incorporação foi gerado no painel Administrador e se o conteúdo incorporado está funcional no modo de produção, não apenas no modo de desenvolvimento.
Se você tiver permissões de administrador, use sudo como o usuário de incorporação para verificar se o conteúdo está funcionando. Se você receber o erro Oops, we can't find that page
, o problema provavelmente está relacionado a permissões ou acesso ao conteúdo, e não a um problema de autenticação. Se o usuário incorporado não aparecer na página Usuários do painel Administrador do Looker, significa que ele não foi criado e o URL de incorporação está falhando. Tente resolver 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 e, 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 de "Falha no 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 geralmente 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 URI de incorporação pode revelar informações valiosas sobre o motivo de um erro.
O validador de URI de incorporação está aparecendo 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, isso significa que a incorporação assinada ainda não foi ativada. É necessário ativar a incorporação assinada.
Estou recebendo o erro 'signature param' failed to authenticate
Se você receber esse erro, a assinatura gerada pelo script não está funcionando conforme o esperado. Consulte as seções a seguir para possíveis soluções:
Os secrets de incorporação são iguais?
A chave secreta de incorporação na sua instância do Looker precisa ser idêntica à chave secreta de incorporação assinada no script de geração de URL de incorporação assinado. Se você não tiver certeza, selecione Redefinir chave secreta para gerar uma nova e adicioná-la ao script. A redefinição da chave vai interromper 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 vai informar se o secret que você está usando é inválido.
A string de 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 Incorporação assinada.
A string de assinatura, quando impressa, deve ter esta aparência 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 seu segredo de incorporação, verifique se os parâmetros no URL final correspondem aos parâmetros especificados na string de assinatura. Verifique se os caracteres especiais, como +
e /
, estão codificados nos parâmetros de URL. Por exemplo, +
pode ser interpretado como um espaço se não estiver codificado corretamente. Além disso, confira se não há quebras de linha no URL incorporado assinado, que podem passar despercebidas após a codificação.
Compare seu script com nossos exemplos de script para verificar se ele passa por 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
só é necessário se o script estiver usando listeners de eventos JavaScript, o que geralmente não é um requisito para uma implementação básica de incorporação assinada. Se o aplicativo 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 aplicativo incorporado, verifique o script de geração de URL para saber onde o parâmetro embed_domain
está sendo adicionado. O erro geralmente significa que o parâmetro embed_domain
foi colocado acidentalmente como um parâmetro de incorporação assinado em vez de diretamente no embed_url
. O script não vai formatar o parâmetro embed_domain
corretamente, a menos que ele faça parte do embed_url
. Além disso, ele precisa ser adicionado depois do 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. Gere um URL de incorporação novo que ainda não tenha sido carregado no navegador e verifique se o nonce está mudando e não sendo reutilizado.
Estou sendo redirecionado para um erro Uh-Oh, Something went wrong
Se você estiver vendo esse erro, entre em contato com o suporte do Looker para ajudar a diagnosticar o problema.
Estou sendo redirecionado para uma página com a mensagem de erro 401 You are not authenticated to view this page.
Se você tentou todas as etapas de solução de problemas aplicáveis e o problema 401 continua, é provável que seu navegador esteja bloqueando cookies de terceiros. A maioria dos navegadores está se tornando mais restritiva e vai usar por padrão uma política de cookies que bloqueia esses cookies. Por exemplo, a configuração Impedir rastreamento entre sites do Safari e a configuração Bloquear cookies de terceiros na navegação anônima do Chrome são ativadas por padrão.
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 querem que os usuários ativem manualmente cookies de terceiros nos navegadores precisam mudar o nome de domínio da instância hospedada pelo Looker. Por exemplo, as instâncias hospedadas pelo Looker geralmente têm 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 a página de práticas recomendadas Como mudar o URL de uma instância do Looker para mais informações.
Se você quiser adicionar um domínio personalizado à sua instância do Looker, entre em contato com o suporte do Looker para configurar a configuração DNS necessária.
Instâncias auto-hospedadas
Se você estiver fazendo a hospedagem própria da sua instância do Looker, mude as entradas de DNS para garantir que o aplicativo que usa incorporação assinada esteja no mesmo domínio base da instância do Looker.
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 não tiver uma --ssl-provided-externally-by=<s>
flag de inicialização. Portanto, verifique se essa flag está configurada.
Ainda estou com problemas. O que faço agora?
Se você ainda estiver com problemas depois de tentar as sugestões nesta página, entre em contato com seu representante do Looker ou acesse o Suporte do Looker para abrir um tíquete.