Prácticas recomendadas de seguridad para las estadísticas incorporadas

Con las estadísticas incorporadas de Looker, puedes permitir que tus usuarios y clientes exploren datos incorporados en un iframe 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 intencional, no se permite que un iframe lea o escriba datos de tu sitio web o aplicación externos.

Los datos de incorporación a veces pueden presentar inquietudes de privacidad o seguridad. Para mitigar estas preocupaciones, sugerimos que los administradores de Looker sigan estas prácticas recomendadas:

  • Si incorporas contenido de Looker a los clientes, configúralo en una instancia de Looker independiente de la instancia que usas para las estadísticas internas.
  • Solo conecta los datos a la instancia incorporada de Looker a la que deberían acceder los usuarios incorporados, que pueden ser públicos.
  • Proteger los tokens aleatorios dentro de las URLs de incorporación pública como si fueran credenciales de usuario y, luego, inhabilitar las URL públicas si no se usan
  • Un valor external_user_id asignado debe ser único para cada conjunto determinado de permisos, atributos del 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 estés usando el mismo external_user_id para un solo usuario que tenga diferentes permisos, valores de atributos de usuario o acceso al modelo.
  • Habilita un sistema cerrado.
  • Protege el secreto de incorporación de SSO como si fuera credenciales de administrador para la instancia incorporada de Looker y mantén inhabilitada la incorporación de SSO si no la usas.
  • Usa una autenticación sólida para las instancias incorporadas de Looker (SSO, SAML, Google OAuth, 2FA).
  • Si utilizas la inserción sin cookies, protege el token de referencia de sesión para que solo se pueda acceder a él desde el servidor host de la aplicación incorporada. El token de referencia de sesión nunca debe exponerse en el navegador.
  • Si usas una incorporación 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 incorporado. Mantén siempre una asignación del usuario insertado 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 requiera para el acceso de los usuarios a sus datos: público, privado y con inicio de sesión único. Con cualquiera de estos métodos, puedes interactuar con el iframe mediante JavaScript.

Incorporación pública

Con la opción de Acceso público de Look, habilitada, puedes incorporar una tabla de visualización o de datos a 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 de incorporación dentro de la etiqueta iframe contienen un token aleatorio y no se puede adivinar, pero cualquier persona con la URL de incorporación puede acceder a los datos y no se aplican filtros ni restricciones adicionales. Recomendamos tener en cuenta las implicaciones de seguridad de crear y compartir una URL pública para un estilo determinado antes de habilitar las URL 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 consulta,no los datos reales.

Incorporación privada

Si no quieres permitir el acceso público a tu estilo, también puedes incorporar una imagen, una exploración 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 del mismo origen de Looker.

Las URLs de incorporación privadas nunca se vencen y no se pueden revocar. Sin embargo, dado que el vínculo solo funciona para alguien que tenga acceso a tu instancia de Looker y que esa información no sea propia, enviar un vínculo no debería generar un problema de seguridad.

Incorporación en el inicio de sesión único

Comunícate con un especialista en ventas de Google Cloud para actualizar tu licencia de esta función.

La incorporación del inicio de sesión único lleva aún más la incorporación privada. 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. Authentication crea una nueva sesión del navegador y emite una cookie al navegador.

Los permisos, identificadores y atributos de los usuarios 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.

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 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 incorporación de SSO es secreta y solo puede verla el usuario que ve la incorporación. El uso de la incorporación de SSO no aumenta el riesgo de que se produzca un clickjacking al sitio web externo.

Parámetros de incorporación de SSO

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

  • user_attributes: Se usan para filtrar aún más los datos. user_attributes son potentes, por lo que debes considerar cómo podrían aplicarse a tu instancia de Looker.
  • session_length: Manténlo al mínimo necesario.

Algunos parámetros, como user_attributes, pueden estar ocultos en la IU, pero aún se codificarán en la URL incorporada. Esto puede no ser deseable, por ejemplo, si una contraseña es un valor dentro de user_attribute de un usuario. Una forma de solucionar esto es construir un grupo temporal, establecer la contraseña como un atributo de nivel de grupo y luego pasar el ID del grupo en la URL incorporada. Puedes borrar el grupo después de la sesión incorporada para evitar el 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 de +/- 5 minutos a partir de la hora actual. Puedes especificar en session_length cuánto tiempo puede durar la sesión incorporada cuando se usa la URL para acceder.

Cómo administrar el acceso de incorporación de SSO

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

  • Usa el nivel más bajo de permisos necesario.
  • 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 mediante una aplicación de proxy o un servidor proxy inverso. En este caso, la autenticación se realiza a través de las 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 secreto del cliente.

Cómo administrar el acceso de incorporación mediante la API

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

  • Crear cuentas de servicio 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 del cliente que conforman la clave de API (si se autentica con un SDK)

Los atributos de usuario establecidos para usuarios incorporados a través de la API y que no se especifiquen en la URL de SSO se restablecen a sus valores predeterminados cuando se accede a la URL de SSO.

Eventos de JavaScript incorporados

Después de configurar tu iframe incorporado (público, privado, con SSO o mediante la API), puedes interactuar con ese iframe a través de JavaScript. Para validar que la información con la que trabajas realmente proviene del iframe de Looker, puedes escuchar los eventos de JavaScript.

Cuando agregue dominios a la lista de entidades permitidas, use el comodín para permitir que solo subdominios específicos accedan a sus eventos de JavaScript.

Si usas la función eval de JavaScript, asegúrate de que el valor de la string en el argumento eval provenga de una fuente confiable, como el servidor de Looker o CDN, y que esté en transporte HTTPS.

Nunca hay datos del cliente que pasen por las CDN de Looker. Desde la CDN, solo se publican los recursos estáticos de la aplicación web de Looker (código JavaScript, páginas HTML y estilos CSS).

Implementaciones alojadas por el cliente

Alojar tu propia instancia de Looker puede parecer la forma segura de bloquear el acceso a los datos, especialmente al contenido incorporado. Sin embargo, si tus usuarios necesitan acceder a la URL incorporada a través de Internet, no tienes ninguna ventaja especial por alojar Looker.

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

  • No es necesario que tus usuarios accedan a Looker a través de Internet.
  • Eres líder de Looker y accedes a contenido incorporado a través de la API.