Com a análise incorporada do Looker, pode permitir que os seus utilizadores e clientes explorem dados incorporados num iFrame em qualquer página Web, portal ou aplicação formatada em HTML. O iFrame executa toda a aplicação Looker, pedindo apenas os dados necessários para apresentar a sua consulta. Por predefinição, um iFrame não pode ler nem escrever dados do seu Website ou aplicação externos.
Por vezes, a incorporação de dados pode apresentar preocupações de privacidade ou segurança. Para mitigar estas preocupações, recomendamos que os administradores do Looker sigam estas práticas recomendadas:
- Se estiver a incorporar conteúdo do Looker para clientes, configure o conteúdo do cliente numa instância do Looker separada da instância que usa para estatísticas internas.
- Associe apenas dados à instância incorporada do Looker que devem ser acessíveis pelos utilizadores da incorporação, que podem ser públicos.
- Proteja os tokens aleatórios nos URLs de incorporação públicos como se fossem credenciais de utilizador e desative os URLs públicos se não forem usados.
- Um valor
external_user_id
atribuído tem de ser exclusivo para cada conjunto de autorizações, atributos do utilizador e modelos. Certifique-se de que não está a usar o mesmoexternal_user_id
em diferentes sessões de incorporação para diferentes utilizadores interativos e certifique-se de que não está a usar o mesmoexternal_user_id
para um único utilizador que tenha diferentes autorizações, valores de atributos do utilizador ou acesso ao modelo. - Ative um sistema fechado.
- Proteja o segredo da incorporação assinada como se fossem credenciais de administrador da sua instância do Looker incorporada e mantenha a incorporação assinada desativada se não a estiver a usar.
- Use a autenticação forte para as suas instâncias incorporadas do Looker (incorporação assinada, SAML, Google OAuth, 2FA).
- Se estiver a usar a incorporação sem cookies, proteja o token de referência da sessão para que só seja acessível no servidor anfitrião da aplicação incorporada. O token de referência da sessão nunca deve ser exposto no navegador.
- Se estiver a usar a incorporação sem cookies e a definir o domínio de incorporação permitido quando adquire a sessão sem cookies, nunca confie na origem do navegador do utilizador de incorporação. Mantenha sempre um mapeamento do utilizador incorporado para a origem fidedigna do utilizador incorporado no servidor da aplicação de incorporação.
O Looker oferece diferentes tipos de métodos de incorporação, consoante o nível de autenticação exigido aos utilizadores que acedem aos seus dados: público, privado e incorporação assinada. Com qualquer um destes métodos, pode interagir com o iFrame através de JavaScript.
Incorporação pública
Com a opção Acesso público do Looker ativada,pode incorporar uma visualização ou uma tabela de dados num Website externo através de uma etiqueta iframe HTML. Também pode partilhar publicamente o URL do Look ou importar dados para aplicações de folhas de cálculo do Google ou Excel.
O URL e o URL de incorporação na etiqueta iframe
contêm um token aleatório e não podem ser adivinhados, mas qualquer pessoa com o URL de incorporação pode aceder aos dados, e não são aplicadas filtragens nem restrições adicionais. Recomendamos que considere as implicações de segurança da criação e partilha de um URL público para uma determinada análise detalhada antes de ativar os URLs públicos.
Os URLs públicos e os URLs de incorporação públicos nunca expiram e não podem ser revogados. Quando partilha um URL público, está a partilhar a consulta e não os dados reais.
Incorporação privada
Se não quiser permitir o acesso público ao seu Look, também pode incorporar um Look, uma exploração ou um painel de controlo de forma privada num iFrame, para que seja necessário iniciar sessão no Looker para ver o conteúdo.
Os utilizadores autenticados só podem aceder ao conteúdo ditado pelas respetivas autorizações do Looker atribuídas. Se alterar as autorizações no Looker, o URL incorporado não é alterado, mas o que o utilizador tem autorização para ver quando acede ao URL pode mudar.
Se o utilizador não estiver autenticado, pode apresentar um erro ou um ecrã de início de sessão no iFrame. No entanto, a ativação de um ecrã de início de sessão no iFrame não é compatível com as proteções de mesma origem do Looker.
Os URLs de incorporação privados nunca expiram e não podem ser revogados. No entanto, uma vez que o link só funciona para alguém que tenha acesso à sua instância do Looker e a esses dados, o envio de um link não deve causar problemas de segurança.
Incorporação assinada
Contacte um especialista de vendas do Google Cloud para atualizar a sua licença para esta funcionalidade.
A incorporação assinada leva a incorporação privada um passo mais longe. A incorporação assinada não requer que os utilizadores se autentiquem através de uma conta de utilizador do Looker. Em alternativa, podem ser autenticados através da sua própria aplicação com o URL numa iFrame. A autenticação cria uma nova sessão do navegador e emite um cookie para o navegador.
As autorizações, os identificadores e os atributos do utilizador são todos transmitidos como parâmetros no URL, que é assinado com uma chave secreta. Qualquer pessoa com acesso à chave secreta pode criar um URL para aceder a qualquer modelo ao qual a instância do Looker esteja ligada, como qualquer utilizador, com qualquer autorização. Consulte o nosso código de exemplo para saber como gerar URLs assinados.
O clickjacking é um problema de segurança do navegador que pode ocorrer quando um código incorporado ou um script executa uma função sem o conhecimento ou o consentimento do utilizador, como um botão que parece fazer outra coisa. Normalmente, o clickjacking requer um URL estático. O URL gerado para uma incorporação assinada é secreto e apenas o utilizador que vê a incorporação o deve ter. A utilização da incorporação assinada não aumenta o risco de roubo de cliques para o Website externo.
Parâmetros de incorporação assinados
Os parâmetros incluídos no URL do iFrame são visíveis para os utilizadores da incorporação, mas não são editáveis. Estas podem incluir:
user_attributes
: estes são usados para filtrar ainda mais os dados.user_attributes
são poderosos, por isso, considere como podem aplicar-se à sua instância do Looker.session_length
: mantenha esta opção no tempo mínimo necessário.
Alguns parâmetros, como user_attributes
, podem estar ocultos na IU, mas continuam a ser codificados no URL incorporado. Isto pode ser indesejável se, por exemplo, uma palavra-passe for um valor no user_attribute
de um utilizador. Uma forma de contornar esta situação é criar um grupo temporário, definir a palavra-passe como um atributo ao nível do grupo e, em seguida, transmitir o ID do grupo no URL incorporado. Pode eliminar o grupo após a sessão de incorporação para evitar um excesso de grupos expirados.
A parte assinada do URL contém uma indicação de tempo. Assim que o URL for usado para iniciar sessão, esse horário tem de ser +/- 5 minutos do horário atual. Pode especificar em session_length
a duração da sessão incorporada a partir do momento em que o URL é usado para iniciar sessão.
Gerir o acesso de incorporação assinado
Ao criar o URL para o conteúdo incorporado:
- Use o nível mais baixo de autorizações necessário.
- Atribua acesso apenas aos modelos específicos aos quais o utilizador deve poder aceder.
- Use
group_ids
para atribuir um utilizador a um grupo e permitir que o utilizador incorporado controle o acesso à respetiva pasta do Looker.
API Looker
Através da API do Looker, pode ativar o acesso a conteúdo incorporado através de uma aplicação de proxy ou de um servidor de proxy inverso. Neste cenário, a autenticação é realizada através de chaves da API, que estão associadas a um utilizador específico e têm as mesmas autorizações que o utilizador que as gera. As chaves de API são compostas por um ID de cliente e uma chave secreta do cliente.
Gerir o acesso de incorporação através da API
Quando ativa o acesso a conteúdo incorporado através da API do Looker, recomendamos o seguinte:
- Criar contas de serviço dedicadas para acesso à API programático com o conjunto mínimo de privilégios necessários.
- Proteger o ID de cliente e o segredo do cliente que compõem a chave da API (se estiver a fazer a autenticação com um SDK).
Todos os atributos de utilizador definidos para utilizadores incorporados através da API, mas não especificados no URL incorporado assinado, são repostos para os respetivos valores predefinidos quando o URL incorporado assinado for acedido novamente.
Eventos de JavaScript incorporados
Depois de configurar o iFrame incorporado (publicamente, de forma privada, com incorporação assinada ou através da API), pode interagir com esse iFrame através de JavaScript. Para validar que as informações com que está a trabalhar provêm efetivamente do iFrame do Looker, pode ouvir os eventos JavaScript.
Quando adicionar domínios à lista de autorizações, use o caráter universal para permitir que apenas subdomínios específicos acedam aos seus eventos JavaScript.
Se usar a função eval
de JavaScript, certifique-se de que o valor de string no argumento eval
é de uma origem fidedigna, como o servidor ou a RFC do Looker, e está sob transporte HTTPS.
Os dados de clientes nunca passam pelas RFCs do Looker. Apenas os recursos estáticos da aplicação Web do Looker, ou seja, o código JavaScript, as páginas HTML e os estilos CSS, são publicados a partir da RFC.
Implementações alojadas pelo cliente
A alojamento da sua própria instância do Looker pode parecer a forma mais segura de restringir o acesso aos dados, especialmente ao conteúdo incorporado. No entanto, se os seus utilizadores precisarem de aceder ao URL incorporado através da Internet, não existem vantagens especiais em alojar o Looker por si próprio.
As implementações alojadas pelo cliente podem ser mais adequadas quando:
- Os seus utilizadores não têm de aceder ao Looker através da Internet.
- Está a usar o Looker como front-end e a aceder a conteúdo incorporado através da API.