Prácticas recomendadas de seguridad para estadísticas incorporadas

Con la tecnología de Looker, con la funcionalidad de estadísticas incorporadas de Looker (PBL), puedes permitir que tus usuarios y clientes exploren los datos incorporados en un iframe en cualquier página web, aplicación o portal con formato HTML. El iframe ejecuta toda la aplicación de Looker y solicita solo los datos necesarios para mostrar su consulta. Por diseño, un iframe no puede leer ni escribir datos en su sitio web o aplicación externos.

A veces, la incorporación de datos puede generar problemas de privacidad o seguridad. Para mitigar estas preocupaciones, recomendamos que los administradores de Looker sigan estas prácticas recomendadas:

  • Si incorpora contenido de Looker a los clientes, configúrelo en una instancia de Looker separada de la instancia que usa para las estadísticas internas.
  • Solo conecta datos a la instancia incorporada de Looker a la que deberían acceder los usuarios incorporados, que pueden ser públicos.
  • Protege los tokens aleatorios dentro de URL públicas incorporadas como si fueran credenciales de usuario e inhabilita las URL públicas si no se usan.
  • Un valor external_user_id asignado debe ser único para cada conjunto determinado de permisos, atributos de usuario y modelos. Asegúrate de no usar el mismo external_user_id en diferentes sesiones de incorporación para distintos usuarios interactivos y de que no uses el mismo external_user_id para un solo usuario que tenga permisos, valores de atributos de usuario o acceso al modelo distintos.
  • Habilita un sistema cerrado.
  • Protege el secreto de incorporación de SSO como si fueran credenciales de administrador de la instancia incorporada de Looker y mantén inhabilitada la incorporación de SSO si no la estás usando.
  • Usa una autenticación sólida para tus instancias incorporadas de Looker (SSO, SAML, Google OAuth y 2FA).

Looker ofrece diferentes tipos de métodos de incorporación según el nivel de autenticación que se requiera para los usuarios que acceden a sus datos: público, privado y inicio de sesión único. Con cualquiera de estos métodos, puedes interactuar con el iframe a través de JavaScript.

Incorporación pública

Con la opción Acceso público de Look habilitada,puedes incorporar una tabla de visualización o de datos en un sitio web externo mediante una etiqueta HTML iframe. También puedes compartir públicamente la URL de visualización o importar datos a aplicaciones de hojas de cálculo de Google o Excel.

La URL y la URL incorporada en la etiqueta iframe contienen un token aleatorio y no se pueden adivinar, pero cualquier persona con la URL incorporada puede acceder a los datos y no se aplican filtros ni restricciones adicionales. Te recomendamos que consideres las implicaciones de seguridad relacionadas con la creación y el uso compartido de una URL pública para un estilo específico antes de habilitar las URL públicas.

Las URL públicas y las URL de incorporación públicas nunca caducan y no se pueden revocar. Cuando compartes una URL pública, compartes la consulta y no los datos reales.

Incorporación privada

Si no quieres permitir el acceso público a tu Look, también puedes incorporar un Look (o un Explorar o un panel) de forma privada en un iframe, de modo que se requiera un acceso de 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 incorporada no cambia, pero lo que el usuario puede ver cuando accede a la URL puede cambiar.

Si el usuario no está autenticado, puede 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 protecciones de mismo origen de Looker.

Las URL de incorporación privadas nunca caducan y no se pueden revocar. Sin embargo, dado que el vínculo solo funciona para alguien que tenga acceso a su instancia de Looker y a esos datos, el envío de un vínculo no debería causar problemas de seguridad.

Incorporación en inicio de sesión único

Comuníquese con su administrador de cuentas para actualizar su licencia de esta función.

La inserción de inicio de sesión único lleva la incorporación privada un paso más adelante. La incorporación de SSO no requiere que los usuarios se autentiquen mediante una cuenta de usuario de Looker. En su lugar, se pueden autenticar a través de su propia aplicación a través de la URL en un iframe. La autenticación crea una nueva sesión del navegador y le envía una cookie.

Los permisos, identificadores y atributos del usuario se pasan como parámetros dentro de la URL, que se firma con una clave secreta. Cualquier persona con 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 obtener información sobre cómo generar URL firmadas.

El clickjacking es un problema de seguridad del navegador que puede ocurrir cuando un código incorporado o una secuencia de comandos ejecuta una función sin el conocimiento o el consentimiento del usuario, como un botón que parece realizar otra acción. El clickjacking generalmente requiere una URL estática. La URL generada para una inserción de SSO es secreta y solo la debe ver el usuario que la inserta. El uso de la inserción de SSO no aumenta el riesgo de clickjacking en el sitio web externo.

Parámetros de incorporación de SSO

Los parámetros incluidos en la URL del iframe son visibles para los usuarios insertados, pero no pueden modificarse. Estos pueden incluir:

  • user_attributes: Se usan para filtrar aún más los datos. user_attributes son potentes, por lo que debe considerar cómo podrían aplicarse a su instancia de Looker.
  • session_length: conserva esto en el tiempo mínimo necesario.

Algunos parámetros, como user_attributes, se pueden ocultar en la IU, pero aún se codificarían en la URL incorporada. Esto puede ser no deseado si, por ejemplo, una contraseña es un valor dentro de la user_attribute del usuario. Una forma de solucionar esto es construir un grupo temporal, establecer la contraseña como un atributo a nivel de grupo y luego pasar el ID de grupo en la URL incorporada. Puedes borrar el grupo después de la sesión de incorporación para evitar un exceso de grupos inactivos.

La parte firmada de la URL contiene una marca de tiempo. Una vez que se utiliza la URL para acceder, la hora debe ser +/- 5 minutos a partir de la hora actual. Puedes especificar en session_length cuánto tiempo puede durar la sesión de incorporación cuando se usa la URL para acceder.

Administrar el acceso de incorporación de SSO

Cuando crees la URL para el contenido incorporado, ten en cuenta lo siguiente:

  • Usa el nivel más bajo de permisos necesarios.
  • Asigna solo 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 proxy o un servidor proxy inverso. En este caso, la autenticación se realiza a través de claves de API3, que están vinculadas a un usuario específico y tienen los mismos permisos que el usuario que las genera. Las claves de API3 se componen de un ID de cliente y una clave secreta de cliente.

Cómo administrar el acceso incorporado mediante la API

Cuando habilites el acceso al contenido incorporado con la API de Looker, te recomendamos lo siguiente:

  • Crear cuentas de servicios dedicadas para el acceso programático a la API con el conjunto mínimo de privilegios necesarios
  • Proteger el ID de cliente y el secreto de cliente que conforman la clave de API3 (si autenticas con un SDK)

Los atributos de usuario configurados para usuarios insertados a través de la API que no se hayan especificado en la URL de SSO se restablecerán a sus valores predeterminados la próxima vez que se acceda a la URL de SSO.

Eventos de JavaScript incorporados

Una vez que hayas configurado tu iframe incorporado (de forma pública, privada, con SSO o mediante la API), podrás interactuar con ese iframe mediante JavaScript. Para validar que la información con la que trabajas proviene 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 string en el argumento eval provenga de una fuente confiable, como el servidor de Looker o CDN, y que esté en transporte HTTPS.

Ningún dato del cliente pasa por las CDN de Looker. Solo los recursos estáticos de aplicaciones web de Looker (código JavaScript, páginas HTML, estilos CSS) se publican desde la CDN.

Implementaciones alojadas por el cliente

Alojar tu propia instancia de Looker puede parecer la forma más segura de bloquear el acceso a los datos, especialmente el contenido incorporado. Sin embargo, si tus usuarios necesitan acceder a la URL incorporada por Internet, no tendrás ninguna ventaja especial en cuanto a la posibilidad de alojar Looker por tu cuenta.

Las implementaciones alojadas por el cliente pueden ser más apropiadas en los siguientes casos:

  • No es necesario que los usuarios accedan a Looker a través de Internet.
  • Usted está usando el frontend de Looker y accede a contenido incorporado a través de la API.