Com a análise incorporada do Looker, seus usuários e clientes podem explorar dados incorporados em um iframe em qualquer página da Web, portal ou aplicativo formatado em 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 do site ou aplicativo externo.
Às vezes, a incorporação de dados pode apresentar problemas de privacidade ou segurança. Para atenuar 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 separada do Looker da instância usada para análise interna.
- Conecte apenas dados à instância incorporada do Looker que devem ser acessíveis por usuários incorporados, que podem ser o público.
- Proteja os tokens aleatórios nos URLs incorporados públicos como se fossem credenciais de usuários e desative os URLs públicos se eles não forem usados.
- Um valor de
external_user_id
atribuído precisa ser único para cada conjunto de permissões, atributos de usuário e modelos. Verifique se você não está usando o mesmoexternal_user_id
em sessões de incorporação diferentes para usuários interativos diferentes e se não está usando o mesmoexternal_user_id
para um único usuário com permissões, valores de atributos do usuário ou acesso ao modelo diferentes. - Ative um sistema fechado.
- Proteja a chave secreta de incorporação do SSO como se ela fosse uma credencial de administrador para sua instância do Looker incorporada e mantenha a incorporação de SSO desativada caso você não a esteja usando.
- Use uma autenticação forte nas instâncias incorporadas do Looker (SSO, SAML, Google OAuth e 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 de Acesso público de um recurso ativada,é possível incorporar uma visualização ou uma tabela de dados a um website externo usando uma tag HTML iframe. Também é possível compartilhar publicamente o URL de visualização ou importar dados para os aplicativos de planilha do Google ou do Excel.
O URL e o URL incorporado na tag iframe
contêm um token aleatório e não podem ser adivinhados, mas qualquer pessoa com o URL incorporado pode acessar os dados, e nenhuma filtragem ou restrição adicional é aplicada. Recomendamos que você considere 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 os URLs incorporados incorporados nunca expiram e não podem ser revogados. Ao compartilhar um URL público, você compartilha a consulta,não os dados.
Incorporação privada
Se você não quiser permitir o acesso público ao seu visual, incorpore um visual, um explorador ou um painel de modo privado em um iframe. Assim, será necessário fazer login no Looker para ver o conteúdo.
Os usuários autenticados só podem acessar o conteúdo ditado pelas permissões do Looker atribuídas. Se você mudar as permissões no Looker, o URL incorporado não vai mudar, mas o que o usuário tem permissão para ver quando acessa o URL pode mudar.
Se o usuário não estiver autenticado, será possível mostrar um erro ou uma tela de login no iframe. No entanto, a ativação de uma tela de login no iframe não é compatível com as proteções de mesma origem do Looker.
Os URLs incorporados particulares nunca expiram e não podem ser revogados. No entanto, como o link funciona apenas para alguém que tem acesso à sua instância do Looker e a esses dados, o envio de um link não deve ser motivo de preocupação com a segurança.
Incorporação de logon único
Entre em contato com o gerente da sua conta para atualizar a licença desse recurso.
A incorporação do Logon único leva a incorporação privada um passo adiante. 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. Em vez disso, eles podem ser autenticados por meio de seu próprio aplicativo por meio do URL em um iframe. A autenticação cria uma nova sessão do navegador e emite um cookie para o navegador.
Permissões, identificadores e atributos do usuário são transmitidos como parâmetros no URL, que é assinado com uma chave secreta. Qualquer pessoa com acesso à chave secreta pode criar um URL para acessar qualquer modelo ao qual 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.
Clickjacking é um problema de segurança do navegador que pode acontecer quando um código incorporado ou um script executa uma função sem o conhecimento ou consentimento do usuário, como um botão que parece fazer outra coisa. O clickjacking normalmente 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 tê-lo. Usar a incorporação de SSO não aumenta o risco de clickjacking no website externo.
Parâmetros de incorporação de SSO
Os parâmetros incluídos no URL do iframe são visíveis para 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. Portanto, 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 ocultados na UI, mas ainda seriam codificados no URL incorporado. Isso pode ser indesejável se, por exemplo, uma senha for um valor dentro do user_attribute
de um usuário. Uma forma de contornar isso é construir um grupo temporário, definir a senha como um atributo de nível de grupo e, em seguida, passar o ID do grupo para o 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 é usado para fazer login, esse tempo deve ser +/- 5 minutos a partir do horário atual. Você pode especificar em session_length
quanto tempo dura a sessão de incorporação a partir do momento em que o URL é usado para fazer login.
Gerenciar o acesso ao SSO incorporado
Ao criar o URL para 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 poderá acessar.
- Use
group_ids
para atribuir um usuário a um grupo e permitir que ele incorpore o controle à pasta do Looker.
API Looker
Com a API Looker, é possível ativar o acesso ao conteúdo incorporado com um aplicativo proxy ou um servidor proxy reverso. Nesse cenário, a autenticação é realizada por meio de 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 as gerou. As chaves API3 são compostas por um ID e uma chave secreta do cliente.
Como gerenciar o acesso de incorporação via API
Ao ativar o acesso ao conteúdo incorporado usando a API Looker, recomendamos o seguinte:
- A criação de serviços dedicados considera o acesso programático à API 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 por meio da API, mas não especificados no URL de SSO, são redefinidos para os valores padrão na próxima vez em que o URL de SSO for acessado.
Eventos JavaScript incorporados
Depois de configurar seu iframe incorporado (publicamente, de modo privado, com SSO ou por meio da API), você poderá interagir com esse iframe via JavaScript. Para confirmar que as informações com as quais você está trabalhando realmente vêm do iframe do Looker, é possível ouvir 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 você 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 nunca passam pelas CDNs do Looker. Somente os recursos estáticos de aplicativos da Web do Looker (código JavaScript, páginas HTML, estilos CSS) são veiculados pela CDN.
Implantações hospedadas pelo cliente
A hospedagem de sua própria instância do Looker pode parecer a maneira segura para bloquear o acesso a dados, especialmente a conteúdo incorporado. No entanto, se os usuários precisam acessar o URL incorporado pela Internet, não há vantagens especiais em hospedar o Looker por conta própria.
As implantações hospedadas pelo cliente podem ser mais apropriadas quando:
- Seus usuários não precisam acessar o Looker pela Internet.
- Você está liderando o Looker e acessando conteúdo incorporado pela API.