Práticas recomendadas de segurança para análise incorporada

Com a funcionalidade de análise incorporada do Looker (PBL, na sigla em inglês), você pode capacitar usuários e clientes a explorar os dados incorporados em um iframe em qualquer página da Web, portal ou aplicativo com formatação HTML. O iframe executa todo o aplicativo Looker, solicitando apenas os dados necessários para exibir sua consulta. Por padrão, um iframe não tem permissão para ler ou gravar dados no site ou no aplicativo externo.

A incorporação de dados pode apresentar preocupações com privacidade ou segurança. Para reduzir essas preocupações, recomendamos que os administradores do Looker sigam estas práticas recomendadas:

  • Se você estiver incorporando conteúdo do Looker aos clientes, configure o conteúdo do cliente em uma instância do Looker separada da instância que você usa para análise interna.
  • Conecte apenas dados à instância incorporada do Looker que devem ser acessíveis por usuários incorporados, que podem ser públicos.
  • Proteja os tokens aleatórios nos URLs de incorporação públicos como se fossem credenciais de usuário e desative os URLs públicos se eles não forem usados.
  • O valor external_user_id atribuído precisa ser exclusivo para cada conjunto de permissões, atributos de usuário e modelos. Confira se você não está usando o mesmo external_user_id em sessões de incorporação diferentes para usuários interativos diferentes e se não está usando o mesmo external_user_id para um único usuário que tenha permissões, valores de atributos do usuário ou acesso a modelos diferentes.
  • Ative um sistema fechado.
  • Proteja a chave secreta de incorporação do SSO como se fossem credenciais de administrador para sua instância incorporada do Looker e mantenha a incorporação de SSO desativada se você não a estiver usando.
  • Use a autenticação forte nas instâncias incorporadas do Looker (SSO, SAML, Google OAuth, 2FA).

O Looker oferece diferentes tipos de métodos de incorporação, dependendo do nível de autenticação exigido dos usuários que acessam seus dados: público, privado e Logon único. Com qualquer um desses métodos, você pode interagir com o iframe usando JavaScript.

Incorporação pública

Com a opção Acesso público do Look' ativada, é possível incorporar uma visualização ou tabela de dados em um site externo usando uma tag HTML iframe. Você também pode compartilhar publicamente o URL de visualização ou importar os dados para o Google ou o Excel.

O URL e o URL de incorporação na tag iframe contêm um token aleatório e não podem ser deduzidos, mas qualquer pessoa com o URL de incorporação pode acessar os dados e nenhum filtro ou restrição adicional é aplicado. Recomendamos considerar as implicações de segurança de criar e compartilhar um URL público para um determinado visual antes de ativar URLs públicos.

Os URLs públicos e de incorporação públicos nunca expiram e não podem ser revogados. Ao compartilhar um URL público, você compartilha a consulta, não os dados reais.

Incorporação particular

Se você não quiser permitir o acesso público à sua aparência, também é possível incorporar uma aparência, ou um Explore ou um painel, de forma particular em um iframe. Assim, será necessário fazer login no Looker para ver o conteúdo.

Usuários autenticados podem acessar somente o conteúdo determinado pelas permissões atribuídas do Looker. Se você alterar as permissões dele no Looker, o URL incorporado não mudará, mas o que o usuário poderá ver ao acessar o URL poderá mudar.

Se o usuário não estiver autenticado, será possível mostrar um erro ou uma tela de login no iframe. No entanto, ativar uma tela de login no iframe não é compatível com as proteções da mesma origem do Looker.

Os URLs incorporados incorporados nunca expiram e não podem ser revogados. No entanto, como o link funciona somente para alguém que tem acesso à sua instância do Looker e a esses dados, enviar um link não cria uma preocupação de segurança.

Incorporação de Logon único

Entre em contato com seu gerente de contas para atualizar a licença deste recurso.

A incorporação de Logon único vai um passo à frente na incorporação particular. A incorporação de SSO não exige que os usuários façam a autenticação com uma conta de usuário do Looker. Elas podem ser autenticadas pelo aplicativo em um iframe. O Authentication cria uma nova sessão do navegador e emite um cookie para o navegador.

As permissões do usuário, identificadores e atributos são transmitidos como parâmetros no URL, assinado com uma chave secreta. Qualquer pessoa com acesso à chave secreta pode criar um URL para acessar qualquer modelo a que a instância do Looker esteja conectada, como qualquer usuário, com qualquer permissão. Veja nosso exemplo de código para saber como gerar URLs assinados.

A invasão de cliques é um problema de segurança do navegador que pode acontecer quando um script incorporado ou um script executa uma função sem o conhecimento ou o consentimento do usuário, como um botão que parece fazer outra coisa. A invasão de cliques geralmente requer um URL estático. O URL gerado para uma incorporação de SSO é secreto e somente o usuário que visualiza a incorporação deve ter acesso a ele. Usar a incorporação de SSO não aumenta o risco de invasões para sites externos.

Parâmetros de incorporação de SSO

Os parâmetros incluídos no URL do iframe são visíveis para os usuários incorporados, mas não são editáveis. Esses fatos podem incluir:

  • user_attributes: são usados para filtrar ainda mais os dados. user_attributes são eficientes. Por isso, considere como eles podem ser aplicados à sua instância do Looker.
  • session_length: mantenha o tempo mínimo necessário.

Alguns parâmetros, como user_attributes, podem ser ocultos na IU, mas ainda seriam codificados no URL de incorporação. Isso pode ser indesejável se, por exemplo, uma senha for um valor dentro do user_attribute do usuário. Uma forma de contornar isso é criar um grupo temporário, definir a senha como um atributo no nível do grupo e depois passar o ID do grupo no URL incorporado. Você pode excluir o grupo após a sessão de incorporação para evitar excesso de grupos inativos.

A parte assinada do URL contém um carimbo de data/hora. Depois que o URL for usado para fazer login, esse tempo precisará ser +/- 5 minutos a partir do horário atual. Você pode especificar na session_length a duração da sessão de incorporação quando o URL é usado para fazer login.

Gerenciar o acesso a SSO incorporado

Ao criar o URL do seu conteúdo incorporado:

  • Use o nível mais baixo de permissões necessário.
  • Atribua acesso apenas aos modelos específicos que o usuário pode acessar.
  • Use group_ids para atribuir um usuário a um grupo e permitir que o usuário incorporado controle o acesso à pasta do Looker.

API Looker

Com a API Looker's, é possível ativar o acesso ao conteúdo incorporado por meio de um aplicativo proxy ou de um servidor proxy reverso. Nesse cenário, a autenticação é realizada por chaves de API3, que estão vinculadas a um usuário específico e têm as mesmas permissões que o usuário que gera essas chaves. As chaves de API3 são compostas por um ID e uma chave secreta do cliente.

Como gerenciar o acesso de incorporação pela API

Ao ativar o acesso a conteúdo incorporado usando a API Looker, recomendamos o seguinte:

  • A criação de serviços dedicados considera o acesso à API programática com o conjunto mínimo de privilégios necessários.
  • Proteger o ID e a chave secreta do cliente que compõem a chave de API3 (se você estiver autenticando com um SDK)

Todos os atributos de usuário definidos para incorporar usuários pela API, mas não especificados no URL de SSO, são redefinidos para os valores padrão quando o URL do SSO é acessado pela próxima vez.

Eventos JavaScript incorporados

Depois de configurar o iframe incorporado (público, particular, com SSO ou usando a API), é possível interagir com esse iframe usando JavaScript. Para validar se as informações com as quais você está trabalhando vêm do iframe do Looker, ouça os eventos de JavaScript.

Ao adicionar domínios à lista de permissões, use o caractere curinga para permitir que apenas subdomínios específicos acessem seus eventos de JavaScript.

Se estiver usando a função JavaScript eval, verifique se o valor da string no argumento eval é de uma fonte confiável, como o servidor Looker ou CDN, e está sob transporte HTTPS.

Os dados dos clientes não passam pelas CDNs do Looker. Somente os recursos estáticos do aplicativo da Web do Looker (código JavaScript, páginas HTML, estilos CSS) são exibidos pela CDN.

Implantações hospedadas pelo cliente

Hospedar sua própria instância do Looker pode parecer uma maneira segura de bloquear o acesso a dados, especialmente conteúdo incorporado. No entanto, se os usuários precisarem acessar o URL incorporado pela Internet, não haverá vantagens especiais para hospedar o Looker.

As implantações hospedadas pelo cliente podem ser mais apropriadas quando:

  • Seus usuários não precisam acessar o Looker pela Internet.
  • Você é um front-end do Looker e acessa conteúdo incorporado via API.