Con las estadísticas incorporadas de Looker, puedes empoderar a tus usuarios y clientes para que exploren datos incorporados en iframes en cualquier página web, portal o aplicación con formato HTML. El iframe ejecuta toda la aplicación de Looker y solicita solo los datos necesarios para mostrar tu consulta. De forma predeterminada, no se permite que un iframe lea o escriba datos de tu sitio web o aplicación externos.
En ocasiones, los datos de incorporación pueden presentar problemas de seguridad o privacidad. Para mitigar estas inquietudes, recomendamos que los administradores de Looker sigan estas prácticas recomendadas:
- Si incorporas contenido de Looker a los clientes, configura el contenido de los clientes en una instancia de Looker independiente de la que usas para las estadísticas internas.
- Solo conecta datos a la instancia incorporada de Looker a la que debe tener acceso el público o los usuarios incorporados.
- Protege los tokens aleatorios dentro de las URLs de incorporación públicas como si fueran credenciales de usuario y, si no se usan, inhabilita las URLs públicas.
- Un valor de
external_user_id
asignado debe ser único para cada conjunto determinado de permisos, atributos de usuario y modelos. Asegúrate de no usar el mismoexternal_user_id
en diferentes sesiones de incorporación para diferentes usuarios interactivos y de no usar el mismoexternal_user_id
para un solo usuario que tenga diferentes permisos, valores de atributos del usuario o acceso al modelo. - Habilita un sistema cerrado.
- Protege el secreto de incorporación firmado como si fueran credenciales de administrador de tu instancia de Looker incorporada y mantén inhabilitada la incorporación firmada si no la usas.
- Usa una autenticación sólida para tus instancias incorporadas de Looker (incorporación firmada, SAML, OAuth de Google, 2FA).
- Si usas la inclusión sin cookies, protege el token de referencia de la sesión para que solo se pueda acceder a él en el servidor host de la aplicación de incorporación. El token de referencia de la sesión nunca debe exponerse en el navegador.
- Si usas incorporaciones sin cookies y configuras el dominio de incorporación permitido cuando adquieres la sesión sin cookies, nunca confíes en el origen del navegador del usuario de la incorporación. Siempre mantén una asignación del usuario incorporado al origen de confianza del usuario incorporado en el servidor de aplicaciones incorporado.
Looker ofrece diferentes tipos de métodos de incorporación según el nivel de autenticación que se requiere de los usuarios que acceden a tus datos: público, privado y incorporación firmada. Con cualquiera de estos métodos, puedes interactuar con el iframe usando JavaScript.
Incorporación pública
Si la opción Acceso público de un aspecto está habilitada, puedes incorporar una visualización o una tabla de datos en un sitio web externo con una etiqueta iframe HTML. También puedes compartir públicamente la URL de Look o importar datos en aplicaciones de hoja de cálculo de Google o Excel.
La URL y la URL de incorporación dentro de la etiqueta iframe
contienen un token aleatorio y no se pueden adivinar, pero cualquier persona que tenga la URL de incorporación puede acceder a los datos, y no se aplican filtros ni restricciones adicionales. Te recomendamos que consideres las implicaciones de seguridad que tiene crear y compartir una URL pública para un aspecto determinado antes de habilitar URLs públicas.
Las URLs públicas y las URLs de incorporación públicas nunca vencen y no se pueden revocar. Cuando compartes una URL pública, compartes la búsqueda, no los datos reales.
Incorporación privada
Si no quieres permitir el acceso público a tu aspecto, también puedes incrustar un aspecto (o una exploración o un panel) de forma privada en un iframe, de modo que se requiera un acceso a Looker para ver el contenido.
Los usuarios autenticados solo pueden acceder al contenido que dictan sus permisos de Looker asignados. Si cambias sus permisos en Looker, la URL de incorporación no cambiará, pero es posible que cambie lo que el usuario puede ver cuando accede a la URL.
Si el usuario no está autenticado, puedes mostrar un error o una pantalla de acceso en el iframe. Sin embargo, habilitar una pantalla de acceso en el iframe no es compatible con las protecciónes de mismo origen de Looker.
Las URLs de incorporación privadas nunca vencen y no se pueden revocar. Sin embargo, como el vínculo solo funciona para alguien que tenga acceso a tu instancia de Looker y a esos datos, enviar un vínculo no debería generar problemas de seguridad.
Incorporación firmada
Comunícate con un especialista en ventas de Google Cloud para actualizar tu licencia para esta función.
La incorporación firmada lleva la incorporación privada un paso más allá. La incorporación firmada no requiere que los usuarios se autentiquen con una cuenta de usuario de Looker. En su lugar, se pueden autenticar a través de tu propia aplicación con la URL en un iframe. La autenticación crea una sesión de navegador nueva y le envía una cookie.
Los permisos, los identificadores y los atributos de los usuarios se pasan como parámetros dentro de la URL, que se firma con una clave secreta. Cualquier persona que tenga acceso a la clave secreta puede crear una URL para acceder a cualquier modelo al que esté conectada la instancia de Looker, como cualquier usuario, con cualquier permiso. Consulta nuestro código de ejemplo para aprender a generar URLs firmadas.
El ataque de suplantación de clic es un problema de seguridad del navegador que puede ocurrir cuando un código incorporado o una secuencia de comandos ejecutan una función sin el conocimiento o consentimiento del usuario, como un botón que parece hacer otra cosa. El clickjacking suele requerir una URL estática. La URL generada para una incorporación firmada es secreta y solo el usuario que ve la incorporación debe tenerla. El uso de incorporaciones firmadas no aumenta el riesgo de ataque de suplantación de clics en el sitio web externo.
Parámetros de incorporación firmados
Los usuarios que insertan el iframe pueden ver los parámetros incluidos en la URL del iframe, pero no pueden editarlos. Estos pueden incluir:
user_attributes
: Se usan para filtrar aún más los datos. Losuser_attributes
son potentes, así que considera cómo se pueden aplicar a tu instancia de Looker.session_length
: Mantén este tiempo en el mínimo necesario.
Algunos parámetros, como user_attributes
, se pueden ocultar en la IU, pero se codificarán en la URL de incorporación. Esto puede no ser deseable si, por ejemplo, una contraseña es un valor dentro del user_attribute
de un usuario. Una forma de evitar esto es crear un grupo temporal, establecer la contraseña como un atributo a nivel del grupo y, luego, pasar el ID del grupo en la URL de incorporación. Puedes borrar el grupo después de la sesión de incorporación para evitar un exceso de grupos vencidos.
La parte firmada de la URL contiene una marca de tiempo. Una vez que se usa la URL para acceder, esa hora debe ser de +/- 5 minutos de la hora actual. En session_length
, puedes especificar la duración de la sesión de incorporación desde el momento en que se usa la URL para acceder.
Cómo administrar el acceso de incorporación firmado
Cuando compiles la URL para tu contenido incorporado, haz lo siguiente:
- Usa el nivel más bajo de permisos necesario.
- Solo asigna acceso a los modelos específicos a los que el usuario debería poder acceder.
- Usa
group_ids
para asignar un usuario a un grupo y permitir que el usuario incorporado controle el acceso a su carpeta de Looker.
API de Looker
Con la API de Looker, puedes habilitar el acceso al contenido incorporado a través de una aplicación de proxy o un servidor proxy inverso. En este caso, la autenticación se realiza con claves de API, que están vinculadas a un usuario específico y tienen los mismos permisos que el usuario que las genera. Las claves de API se componen de un ID de cliente y una clave secreta de cliente.
Administra el acceso de incorporación con la API
Cuando habilites el acceso al contenido incorporado con la API de Looker, te recomendamos que hagas lo siguiente:
- Crear cuentas de servicio dedicadas para el acceso a la API programática con el conjunto mínimo de privilegios necesarios
- Proteger el ID de cliente y la clave secreta que conforman la clave de API (si se realiza la autenticación con un SDK)
Los atributos de usuario establecidos para los usuarios incorporados que usan la API, pero que no se especifican en la URL de incorporación firmada, se restablecen a sus valores predeterminados la próxima vez que se accede a la URL de incorporación firmada.
Eventos de JavaScript incorporados
Después de configurar tu iframe incorporado (de forma pública, privada, con incorporación firmada o a través de la API), puedes interactuar con ese iframe con JavaScript. Para validar que la información con la que estás trabajando realmente provenga del iframe de Looker, puedes escuchar los eventos de JavaScript.
Cuando agregues dominios a la lista de entidades permitidas, usa el comodín para permitir que solo subdominios específicos accedan a tus eventos de JavaScript.
Si usas la función eval
de JavaScript, asegúrate de que el valor de cadena en el argumento eval
provenga de una fuente confiable, como el servidor de Looker o la CDN, y que esté bajo transporte HTTPS.
Los datos de los clientes nunca pasan por las CDN de Looker. Solo los recursos estáticos de la aplicación web de Looker (código JavaScript, páginas HTML y estilos CSS) se entregan desde la CDN.
Implementaciones alojadas por el cliente
Alojado en tu propia instancia de Looker, puede parecer la forma más segura de bloquear el acceso a los datos, en especial al contenido incorporado. Sin embargo, si tus usuarios necesitan acceder a la URL de incorporación a través de Internet, no hay ventajas especiales para alojar Looker por tu cuenta.
Las implementaciones alojadas por el cliente pueden ser más apropiadas en los siguientes casos:
- Los usuarios no necesitan acceder a Looker a través de Internet.
- Estás usando Looker como frontend y accedes al contenido incorporado con la API.