Incorporación de inicio de sesión único (SSO)

La incorporación de inicio de sesión único (SSO) es una forma de presentar a los usuarios paneles de visualización, visualizaciones, exploraciones, paneles o paneles incorporados de forma privada sin que los usuarios tengan que acceder por separado a Looker. En su lugar, los usuarios se autenticarán a través de su propia aplicación.

La incorporación de SSO crea una URL especial de Looker que usarás en un iframe. La URL contiene la información que desea compartir, el ID del usuario en su sistema y los permisos que desea tener. Luego, firmarás la URL con una clave secreta proporcionada por Looker.

Para la incorporación pública, consulta la sección Incorporación pública con etiquetas iframe de la página de documentación Uso compartido público, importación y incorporación de imágenes.

Antes de que puedas usar la incorporación de SSO en tu instancia de Looker, un administrador de Looker debe habilitar la incorporación de SSO en el panel de administración de Looker y crear una clave secreta incorporada. Para obtener instrucciones, consulta la página de documentación Cómo empezar a incorporar contenido: cómo habilitar la incorporación de SSO.

Hosting adecuado para la incorporación de SSO

Algunos navegadores (por ejemplo, Safari o navegadores con extensiones instaladas que bloquean anuncios o registran cookies) establecen una política de cookies que bloquea las cookies de terceros de forma predeterminada. Cuando se habilita la función Incorporación sin cookies, los navegadores que bloquean las cookies de terceros pueden autenticar usuarios en el iframe incorporado en diferentes dominios. La autenticación de incorporación sin cookies requiere una configuración del servidor. Consulta la página de documentación de Incorporación sin cookies para ver ejemplos de configuración.

Si la función Incorporación sin cookies no está habilitada, Looker usa cookies para la autenticación de usuarios. En este caso, no es posible intentar autenticar el iframe incorporado entre dominios en los navegadores que bloquean cookies de terceros (a menos que el usuario modifique la configuración de privacidad de las cookies de su navegador). Por ejemplo, si quieres incorporar información en https://mycompany.com, debes asegurarte de que Looker comparta el mismo dominio, como https://analytics.mycompany.com. En este caso, si Looker aloja tu instancia, comunícate con el equipo de asistencia de Looker para establecer la configuración de DNS necesaria a fin de habilitar el uso del dominio personalizado. Esto permitirá que Looker comparta el mismo dominio que la aplicación incorporada y use cookies propias, que se aceptan de forma predeterminada en todos los navegadores.

Si tienes una instancia de Looker alojada por el cliente, asegúrate de que la aplicación que usará la incorporación de SSO use el mismo dominio que tu instancia de Looker.

Controlar la visibilidad del cliente con un sistema cerrado

En una configuración de incorporación de SSO, es común que los usuarios de Looker presenten datos a sus propios clientes mientras tienen clientes de diferentes empresas o grupos que no deberían conocerse entre sí. En este caso, para proteger la información privada de sus clientes, le recomendamos que configure Looker como un sistema cerrado, también llamado instalación multiusuario. En un sistema cerrado, el contenido está aislado para evitar que los usuarios de diferentes grupos se conozcan. Por este motivo, te recomendamos que habilites la opción Sistema cerrado antes de otorgar acceso a la instancia a los usuarios externos.

Para obtener más información, consulta las páginas de documentación sobre Cómo diseñar y configurar un sistema de niveles de acceso y Prácticas recomendadas de seguridad para estadísticas incorporadas.

Cómo compilar la URL incorporada

Hay varias formas de crear la URL de incorporación de SSO. Puedes usar uno de estos métodos:

Recopila la información necesaria de Looker

Como punto de partida para crear su URL, primero deberá determinar toda la información que deberá incluir. Necesitarás:

Incorporar URL

Recupera la URL del panel Mirar, Explorar, visualización de consultas o el panel que deseas incorporar. Luego, quita el dominio y coloca /embed antes de la ruta, de la siguiente manera:

Artículo Patrón de URL normal Incorporar URL
Vista https://instance_name.looker.com/
looks/4
/embed/looks/4
Explorar https://instance_name.looker.com/
explore/my_model/my_explore
/embed/explore/my_model/my_explore
Visualización de la consulta https://instance_name.looker.com/
explore/my_model/my_explore?qid=1234567890abcdefghij12

Los 22 caracteres alfanuméricos que siguen al parámetro qid= en la URL de exploración comprenden la Query.client_id. El valor Query.client_id es una string única que representa la búsqueda y la configuración de visualización.

Para incorporar una visualización de consulta, recupera el valor de visualización de Query.client_id de la consulta y copia el Query.client_id en tu URL incorporada.

Puedes usar la IU Explorar de Looker para crear una consulta con una visualización compatible y copiar el valor Query.client_id del parámetro qid=. Por ejemplo, puedes recuperar el uso de la API de Looker con el método Get Query.Query.client_id
/embed/query-visualization/Query.client_id
Panel definido por el usuario https://instance_name.looker.com/
dashboards/1

Incluye cualquier valor de filtro del panel o, si ocultas valores de filtro, el parámetro hide_filter en la URL del panel.
Panel
heredado definido por el usuario
https://instance_name.looker.com/
dashboards-legacy/1
/embed/dashboards-legacy/1
panel de LookML https://instance_name.looker.com/
dashboards/my_model::my_dashboard
/embed/dashboards/my_model::my_dashboard
Panel heredado
de LookML
https://instance_name.looker.com/
dashboards-legacy/my_model::my_dashboard
/embed/dashboards-legacy/my_model::my_dashboard

El contenido incorporado siempre refleja la versión de producción del contenido. Los cambios que realices durante el Modo de desarrollo y que afecten al contenido y que no se hayan implementado en producción no aparecerán en la incorporación.

Permisos

Un conjunto de permisos define lo que puede hacer un usuario o un grupo. Los permisos se pueden aplicar de una de las siguientes maneras:

  • Modelo específico: Este tipo de permiso se aplica solo a los conjuntos de modelos que forman parte de la misma función.
  • En toda la instancia: Este tipo de permiso se aplica a la instancia de Looker en su totalidad. Los usuarios incorporados con permisos para toda la instancia pueden realizar ciertas funciones en toda la instancia de Looker, pero no pueden acceder al contenido en función de modelos que no están incluidos en el conjunto de modelos de su rol.

Determine los permisos que desea que tenga el usuario. En la siguiente lista, se muestran todos los permisos disponibles para la incorporación de SSO. Los permisos que no están en la siguiente lista no son compatibles con la incorporación de SSO:

Permiso Depende Tipo Definición
access_data Ninguna Específico del modelo Permite que el usuario acceda a los datos (obligatorio para ver aspecto, paneles o exploraciones)
see_lookml_dashboards access_data Específico del modelo Permite que los usuarios vean los paneles de LookML
see_looks access_data Específico del modelo Permite que el usuario vea los aspectos
see_user_dashboards see_looks Específico del modelo Permite que los usuarios vean paneles definidos por el usuario y exploren carpetas desde una incorporación
explore see_looks Específico del modelo Permite que el usuario vea las páginas de Explorar
create_table_calculations explore En toda la instancia Cómo crear cálculos de tablas en la pestaña Explorar
create_custom_fields explore En toda la instancia AGREGAR 22.4 Se necesita para crear campos personalizados en la pestaña Explorar
can_create_forecast explore En toda la instancia AGREGADO el 22.12 Permite a los usuarios crear o editar previsiones en las visualizaciones.
save_content see_looks En toda la instancia Permite que los usuarios realicen y guarden cambios en la apariencia y los paneles
send_outgoing_webhook see_looks Específico del modelo Permite que el usuario programe entregas de contenido de Looker en un webhook arbitrario
send_to_s3 see_looks Específico del modelo Permite que el usuario programe entregas de contenido de Looker en un bucket de Amazon S3.
send_to_sftp see_looks Específico del modelo Permite que el usuario programe entregas de contenido de Looker en un servidor SFTP.
schedule_look_emails see_looks Específico del modelo Permite que el usuario programe entregas de contenido de Looker en su propio correo electrónico (si se estableció con un atributo del usuario llamado "email") o en una dirección de correo electrónico que cumpla con las limitaciones establecidas por la lista de dominios permitidos de correo electrónico. Permite que el usuario con permisos de create_alerts envíe notificaciones de alerta a una dirección de correo electrónico que esté dentro de las limitaciones establecidas por la lista de entidades permitidas de dominio de correo electrónico.
schedule_external_look_emails schedule_look_
emails
Específico del modelo Permite que el usuario programe entregas de contenido de Looker en cualquier dominio de correo electrónico. Permite que el usuario con permisos de create_alerts envíe notificaciones de alerta a cualquier dominio de correo electrónico.
send_to_
integration
see_looks Específico del modelo Permite que el usuario entrega contenido de Looker a los servicios de terceros integrados con Looker mediante el Centro de acciones de Looker. Este permiso no está relacionado con las acciones de datos.
create_alerts see_looks En toda la instancia Permite al usuario crear alertas en los mosaicos del panel para recibir notificaciones cuando se cumplen o superan las condiciones especificadas. Los usuarios pueden editar, duplicar y borrar sus propias alertas y las alertas públicas de otros usuarios. Si el lugar de trabajo de Slack del usuario no está conectado a la instancia de Looker, este no podrá crear alertas que envíen notificaciones a Slack.
download_with_limit see_looks En toda la instancia Permite que el usuario descargue los resultados de una consulta con un límite aplicado
download_without_limit see_looks En toda la instancia Permite que el usuario descargue los resultados de una consulta sin límites
see_sql see_looks Específico del modelo Permite que el usuario vea el SQL de las consultas y cualquier error de SQL que resulte de la ejecución de consultas.
clear_cache_refresh access_data Específico del modelo ADDED 21.14 Los usuarios pueden borrar la caché y actualizar los paneles incorporados, los paneles heredados, los mosaicos del panel, los aspectos y las exploraciones.
see_drill_overlay access_data Específico del modelo Permite a los usuarios explorar sin tener que ir a la página Explorar completa.
embed_browse_spaces Ninguna En toda la instancia Habilita el navegador de contenido para que un usuario pueda explorar carpetas desde una incorporación. Cualquier usuario de la incorporación que tenga el permiso embed_browse_spaces podrá acceder a una carpeta de incorporación personal y a la carpeta Compartido de tu organización, si es que tiene una.

Se recomienda usar el permiso embed_browse_spaces para los usuarios que tengan el permiso save_content, de modo que puedan explorar carpetas cuando seleccionen dónde guardar el contenido.

Para ver el contenido en carpetas, el usuario también necesita los permisos see_looks, see_user_dashboards y see_lookml_dashboards.
embed_save_shared_space Ninguna En toda la instancia AGREGADO 21.4 Permite que el usuario que también tiene el permiso save_content navegue a la carpeta Compartido de la organización, si existe, desde el cuadro de diálogo Guardar. Los usuarios que tengan el permiso save_content, pero no el permiso embed_save_shared_space, solo podrán guardar contenido en su carpeta de incorporación personal.

El permiso embed_save_shared_space no anula los permisos de acceso al contenido. Por ejemplo, para permitir que los usuarios puedan guardar elementos en la carpeta Shared, deben tener acceso de Administrar acceso, de Edición a la carpeta Compartido. Además, la falta del permiso embed_save_shared_space no impide que un usuario que tenga el permiso save_content y el acceso Administrar acceso, de edición a la carpeta Compartido guarde contenido allí si este tiene una forma alternativa de navegar a la carpeta Compartido, por ejemplo, con la opción Explorar desde aquí desde un panel incorporado.

Acceso al modelo

Determine a qué modelos de LookML debe tener acceso el usuario. Solo será una lista de nombres de modelos.

Atributos de usuario

Determine los atributos que debe utilizar el usuario (si corresponde). Necesitarás el nombre del atributo de usuario de Looker y el valor que el usuario debe tener para ese atributo.

Grupos

Determine a qué grupos debe pertenecer el usuario, si corresponde. Necesitarás los ID de grupo en lugar de los nombres de grupo. Agregar un usuario de SSO incorporado a un grupo de Looker te permite administrar el acceso de ese usuario a las carpetas de Looker. Los usuarios incorporados del SSO tendrán acceso a todas las carpetas compartidas con los miembros de sus grupos de Looker.

También puedes usar el parámetro external_group_id para crear un grupo externo a los grupos normales de Looker. En ese caso, los usuarios de SSO incorporados con el mismo external_group_id tendrán acceso a una carpeta compartida, denominada “Grupo”, que es exclusiva del grupo externo.

Roles incorporados

Los parámetros permissions y models crean una función para el usuario incorporado. Este rol aparece como "Roles incorporados" en la página Usuarios de la sección Administrador de Looker. Si los parámetros permissions, models y group_ids se especifican en la URL de incorporación, la función incorporada es aditiva a cualquier función que ya se haya asignado a los grupos enumerados en el parámetro group_ids. Esto es lo mismo que las funciones estándar, ya que todas las funciones de Looker son aditivas.

Por ejemplo, supongamos que tienes un grupo existente en Looker con el ID de grupo 1 y que ese grupo ya tiene el permiso explore para un modelo llamado model_one, y creas una URL de incorporación con los siguientes parámetros:

  • group_ids = [1]
  • permissions = ["access_data","see_looks"]
  • models = ["model_two"]

En ese caso, el usuario incorporado heredará la capacidad de ver y explorar los datos en model_one, y el rol incorporado creado con los parámetros anteriores también otorgará la capacidad de ver los datos en model_two.

Cómo crear la URL incorporada

Una URL de incorporación de SSO tiene el siguiente formato:

https://HOST/login/embed/INSTANCIA DE URL?PARÁMETROS&signature=SIGNATURE

Host

El host es la ubicación en la que se aloja la instancia de Looker. Por ejemplo, analytics.mycompany.com. Asegúrate de incluir el número de puerto si no habilitaste la redirección de puertos, como analytics.mycompany.com:9999.

Incorporar URL

La URL de incorporación se determinó anteriormente. Tendrá un formato como el siguiente:

  • /embed/looks/4
  • /embed/explore/my_model/my_explore
  • /embed/query-visualization/Query.client_id
  • /embed/dashboards/1 o /embed/dashboards-legacy/1
  • /embed/dashboards/my_model::my_dashboard o /embed/dashboards-legacy/my_model::my_dashboard

Esto significa que el patrón /embed//embed/ aparecerá en su URL final. Esto es correcto.

Si usas eventos de JavaScript incorporados, asegúrate de agregar un embed_domain (el dominio en el que se usa el iframe) al final de la URL incorporada, como se muestra a continuación:

/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com

embed_domain se agrega después de la URL de incorporación y antes de cualquier parámetro. Por lo tanto, si tienes parámetros existentes, como nonce=626, la adición de embed_domain se vería de la siguiente manera:

/embed/looks/4?nonce=626
/embed/looks/4?embed_domain=https://mywebsite.com?nonce=626

Si usas el SDK de Embed, asegúrate de agregar embed_domain e incluir sdk=2 al final de la URL incorporada, de la siguiente manera:

/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com&sdk=2

El parámetro sdk=2 le permite a Looker identificar que el SDK está presente y puede aprovechar las funciones adicionales que proporciona el SDK. El SDK no puede agregar este parámetro, ya que forma parte de la URL de SSO firmada.

Parámetros

Los siguientes parámetros de URL se utilizan para especificar la información necesaria para la incorporación de SSO:

Parámetro Valor predeterminado Descripción Tipo de datos Ejemplo
nonce Valor obligatorio Cualquier string aleatoria que desees, pero no puede repetirse en una hora y debe tener menos de 255 caracteres.

Esto evita que un atacante vuelva a enviar la URL de un usuario legítimo para recopilar información que no debería tener.
String de JSON "22b1ee700ef3dc2f500fb7"
time Valor obligatorio La hora actual como una marca de tiempo UNIX. Integer 1407876784
session_length Valor obligatorio La cantidad de segundos que el usuario debe permanecer conectado a Looker, entre 0 y 2,592,000 segundos (30 días). Integer 86400
external_user_id Valor obligatorio Es un identificador para cada usuario en la aplicación que incorpora Looker. Looker usa external_user_id para diferenciar a los usuarios de SSO de incorporación, por lo que cada usuario debe tener asignado un ID único.

Puedes crear un external_user_id para un usuario con cualquier string que desees, siempre que sea único para ese usuario. Cada ID se asocia con un conjunto de permisos, atributos de usuario y modelos. Un solo navegador puede admitir solo un external_user_id o una sesión de usuario a la vez. No se pueden realizar cambios en los permisos ni en los atributos de un usuario durante la sesión.

Por motivos de seguridad, asegúrate de no usar el mismo elemento external_user_id en diferentes sesiones de incorporación para distintos usuarios interactivos.Además, asegúrate de no usar el mismo elemento external_user_id para un mismo usuario que tenga permisos de usuario, valores de atributos de usuario o conjuntos de modelos diferentes.

Si se utiliza el mismo elemento external_user_id para varios usuarios o para el mismo usuario con varios permisos, los atributos de usuario o los de modelo podrían otorgar acceso a los datos
String de JSON "user-4"
permissions Valor obligatorio La lista de permisos que el usuario debe tener.

Consulta la sección Permisos de esta página para ver la lista de permisos permitidos.
Arreglo de strings [
  "access_data",
  "see_looks"
]
models Valor obligatorio La lista de nombres de modelos a los que el usuario debería tener acceso. Arreglo de strings [
  "model_one",
  "model_two"
]
group_ids [] La lista de grupos de Looker de los que debe ser miembro el usuario, si corresponde. Usa los ID de grupo en lugar de los nombres de grupo. Arreglo de números enteros [4, 3]
external_group_id "" Un identificador único para el grupo al que pertenece el usuario en la aplicación que incorpora Looker (si lo deseas)

Los usuarios que tengan permiso para guardar contenido y compartan un ID del grupo externo podrán guardar y editar contenido en una carpeta compartida de Looker llamada "Grupo".
String de JSON "Accounting"
user_attributes {} La lista de atributos del usuario que debe tener el usuario (si corresponde) Contiene una lista de nombres de atributos de usuario seguidos del valor del atributo de usuario.

Si tu modelo de MLML está localizado, puedes usar el atributo de usuario locale en la URL de incorporación para especificar un idioma para la incorporación. Por ejemplo, si se incluye el parámetro user_attributes { "locale" : "fr_FR" }, la incorporación cargará el francés como idioma.
Hash de strings {
  "vendor_id" : "17",
  "company" : "xactness"
}
access_filters Valor obligatorio En Looker 3.10, se quitó este parámetro, pero aún es obligatorio en la URL. Usa access_filters con un marcador de posición vacío, por ejemplo, access_filters={}. Marcador de posición vacío {}
first_name "" El nombre del usuario. Si se deja en blanco, first_name retendrá el valor de la última solicitud o será “Incorporar” si no se estableció ningún nombre. String de JSON "Alice"
last_name "" El apellido del usuario. Si se deja en blanco, last_name retendrá el valor de la última solicitud o será “Incorporar” si no se estableció ningún apellido. String de JSON "Jones"
user_timezone "" Si habilitaste las Zonas horarias específicas de usuarios, configura el valor de la opción Zona horaria del usuario en el menú desplegable Zona horaria del panel o aspecto incorporado. Este parámetro no cambia directamente la zona horaria en la que se muestra el contenido. El usuario deberá seleccionar la zona horaria deseada en el menú desplegable.

Consulta los valores válidos en la página de documentación de referencia de la zona horaria de incorporación de SSO.

Sugerencia para el equipo de Chat: Si quieres establecer la zona horaria del usuario como predeterminada, usa uno de los siguientes métodos:

  • Agrega el parámetro ?query_timezone=user_timezone a la URL incorporada. Por ejemplo:

    /embed/dashboards/1?query_timezone=user_timezone
  • Guarda el panel incorporado o la opción Mirar con la zona horaria predeterminada establecida en Zona horaria del usuario, que usará la zona horaria del usuario de forma predeterminada para los usuarios incorporados y no incorporados.
  • String de JSON o valor nulo "US/Pacific"

    o -

    null
    force_logout_login Valor obligatorio Si un usuario normal de Looker ya accedió a Looker y ve un elemento incorporado con SSO, puedes elegir lo siguiente:

    1) Debe ver el elemento con sus credenciales actuales.

    o

    2) Debe salir de la cuenta y volver a acceder con las credenciales de SSO.
    Booleano (verdadero o falso) true

    Firma

    Para generar la firma, debes seguir estos pasos.

    1. Recopila los siguientes valores de parámetros en este orden:
      • Host, seguido de login/embed/ (por ejemplo, analytics.mycompany.com/login/embed/)
      • Incorporar URL
      • Nonce
      • Hora actual
      • Duración de la sesión
      • ID de usuario externo
      • Permisos
      • Modelos
      • ID de grupo
      • ID del grupo externo
      • Atributos de usuario
      • Filtros de acceso (requiere un marcador de posición vacío)
    2. Da formato a todos los valores, excepto aquellos de URL de host y de incorporación, como JSON
    3. Concatena los valores con saltos de línea (\n)
    4. HMAC firma la string concatenada con tu clave secreta incorporada de Looker

    Codificación

    El último paso es codificar su URL.

    Antes de codificar la URL, una URL incorporada con el formato correcto que use todos los parámetros posibles podría verse de la siguiente manera:

    https://analytics.mycompany.com/login/embed//embed/dashboards/1?
    nonce="22b1ee700ef3dc2f500fb7"&
    time=1407876784&
    session_length=86400&
    external_user_id="user-4"&
    permissions=["access_data","see_user_dashboards","see_looks"]&
    models=["model_one","model_two"]&
    group_ids=[4,3]&
    external_group_id="Allegra K"&
    user_attributes={"vendor_id":"17","company":"xactness"}&
    access_filters={}&
    first_name="Alice"&
    last_name="Jones"&
    user_timezone="US/Pacific"&
    force_logout_login=true&
    signature=123456789ABCDEFGHIJKL
    

    Como se señaló anteriormente, es correcto que /embed//embed/ aparezca en tu URL.

    Después de que codifiques la URL, debería verse de la siguiente manera:

    https://analytics.mycompany.com/login/embed/%2embed%2Fdashboards%2F1?
    nonce=%2222b1ee700ef3dc2f500fb7&%22&
    time=1407876784&
    session_length=86400&
    external_user_id=%22user-4%22&
    permissions=%5B%22access_data%22%2C%22see_user_dashboards%22%2C%22see_looks%22%5D&
    models=%5B%22model_one%22%2C%22model_two%22%5D&
    group_ids=%5B4%2C3%5D&
    external_group_id=%22Allegra%20K%22&
    user_attributes=%7B%22vendor_id%22%3A%2217%22%2C%22company%22%3A%22xactness%22%7D&
    access_filters%7B%7D%26%0A
    first_name=%22Alice%22&
    last_name=%22Jones%22&
    user_timezone=%22US%2FPacific%22&
    force_logout_login=true&
    signature=123456789ABCDEFGHIJKL
    

    Usa el extremo de API de create_sso_embed_url

    La API de Looker incluye el extremo create_sso_embed_url, que toma un conjunto de parámetros de incorporación de SSO que incluye la URL del contenido que deseas incorporar y muestra una URL de SSO completa, codificada y firmada de manera criptográfica.

    Para usar este extremo de API desde un servidor web, este debe poder autenticarse en la API de Looker con privilegios de administrador. El dominio del servidor web también debe aparecer en la lista de entidades permitidas para incorporar el dominio.

    También puedes usar el Explorador de API para generar una URL de SSO que use este extremo. Puedes instalar el Explorador de API en tu instancia de Looker desde el Marketplace de Looker o puedes ver una versión pública en el Portal para desarrolladores de Looker. Una vez generada, la URL de SSO debe copiarse de manera exacta y solo puede usarse una vez; de lo contrario, fallará. También es útil para generar una URL de SSO y compararla con una URL de SSO creada manualmente a fin de solucionar problemas.

    Para obtener más información sobre la API de Looker, consulta la página de documentación Comienza a usar la API de Looker.

    Prueba la URL de incorporación

    Para probar la URL final, pégala en el Validador Embed URI de la página Embed de la sección Admin de Looker. Si bien esta opción no puede decirte si los datos y permisos que imaginaste se configuraron correctamente, puede validar que tu autenticación funciona correctamente.