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

Comunícate con tu administrador de cuentas de Looker si deseas usar estas funciones.

La incorporación de inicio de sesión único (SSO) es una forma de presentar los controles de aspecto, visualizaciones, exploraciones, paneles o LookML incorporados a sus usuarios sin necesidad de que accedan a Looker por separado. 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 utilizará en un iframe. La URL contiene la información que desea compartir, el ID del usuario en su sistema y los permisos que desea que tenga. Luego, firmarás la URL con una clave secreta proporcionada por Looker.

Para ver 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 e incorporación de apariencias.

Hosting adecuado para la incorporación de SSO

Algunos navegadores (por ejemplo, Safari o los que tienen instaladas extensiones de bloqueo de anuncios o seguimiento) utilizan de forma predeterminada una política de cookies que bloquea las cookies de terceros. Debido a que Looker usa cookies para la autenticación de usuarios, no es posible intentar autenticar el iframe incorporado en los dominios (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.

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 de dominios personalizados. 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. Abre una solicitud de asistencia en el Centro de ayuda de Looker. Para ello, haz clic en Comunícate con nosotros.

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.

Controla 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 tus clientes, te recomendamos que configures 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 tu instancia a cualquier usuario externo.

Para obtener más información, consulta las páginas de documentación Diseña y configura un sistema de niveles de acceso y Prácticas recomendadas de seguridad para estadísticas incorporadas.

Generando la clave secreta de Looker

Para validar que una solicitud de incorporación de SSO sea legítima y que no haya sido falsificada por otra persona, primero tendrás que generar un &secreto de inserción. Para ello, deberás hacer lo siguiente:

  1. Ve a la página Incorporar en la sección Administrador de Looker.
  2. Selecciona Enabled en el menú desplegable Embed SSO Authentication y, luego, haz clic en Update.
  3. Haz clic en el botón Restablecer secreto para generar el secreto de incorporación. Asegúrate de copiar este secreto en una ubicación segura, ya que no podrás recuperarlo de Looker sin restablecerlo. Si se restablece la clave, se dañarán las incorporaciones que usaban la clave anterior.

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. Protege el secreto de incorporación de SSO como lo harías para administrar las credenciales de tu instancia incorporada de Looker y mantén inhabilitada la incorporación de SSO si no la usas.

Cómo compilar la URL incorporada

Para crear la URL adecuada, deberás escribir código de modo que puedas codificarla correctamente con tu clave secreta y generar otros elementos relacionados con la seguridad. Puedes encontrar varias secuencias de comandos de muestra en nuestro repositorio de GitHub de ejemplos de SSO. Las siguientes secciones explican la información que deberás proporcionar a esas secuencias de comandos.

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 de visualización, Explorar, Consultar consultas o Panel que deseas incorporar. Luego, quita el dominio y coloca /embed antes de la ruta, de la siguiente manera:

Elemento 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 consultas 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 el Query.client_id. El valor Query.client_id es una string única que representa la consulta y la configuración de visualización.

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

Puedes usar la IU de Explorar de Looker para compilar una consulta con una visualización compatible y copiar el valor Query.client_id del parámetro qid=, o puedes recuperar el Query.client_id con la API de Looker, por ejemplo, con el método Get Query.
/embed/query-visualization/Query.client_id
Panel definido por el usuario https://instance_name.looker.com/
dashboards/1
/embed/dashboards/1
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
LookML heredado
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 en el modo de desarrollo y que afecten el contenido y que no se hayan implementado en producción no aparecerán en una incorporación.

Permisos

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

  • Modelo específico: Este tipo de permiso se aplica solo a los conjuntos de modelos que forman parte de la misma función.
  • A nivel de instancia: Este tipo de permiso se aplica a toda la instancia de Looker. Los usuarios insertados 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 función.

Determina los permisos que querrás 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 del Tipo Definición
access_data Ninguno Específico del modelo Permite que los usuarios accedan a los datos (necesarios para ver las apariencias, los paneles o las exploraciones)
see_lookml_dashboards access_data Específico del modelo Permite que los usuarios vean paneles de LookML
see_looks access_data Específico del modelo Permite que el usuario vea la apariencia
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 páginas de Explorar
create_table_calculations explore Toda la instancia Se necesitan para crear cálculos de tablas en la pestaña Explorar
create_custom_fields explore Toda la instancia AGREGAR 22.4 Se necesita para crear campos personalizados en la pestaña Explorar
can_create_forecast explore Toda la instancia AGREGAR 22.12 Permite a los usuarios crear o editar previsiones en las visualizaciones.
save_content see_looks Toda la instancia Permite que los usuarios hagan y guarden cambios en las apariencias y los paneles
send_outgoing_webhook see_looks Específico del modelo Permite que el usuario programe paneles y apariencias en un webhook arbitrario
send_to_s3 see_looks Específico del modelo Permite que el usuario programe paneles y apariencias en un bucket de Amazon S3.
send_to_sftp see_looks Específico del modelo Permite que el usuario programe paneles y apariencias para un servidor SFTP.
schedule_look_emails see_looks Específico del modelo Permite que el usuario programe paneles y la apariencia a fin de que se envíen a su propio correo electrónico (que se establece con un atributo del usuario denominado &email); o a una dirección de correo electrónico que se encuentre dentro de las limitaciones establecidas por la lista de dominios permitidos de correo electrónico. Permite que el usuario con permisos create_alerts envíe notificaciones de alerta a una dirección de correo electrónico que se encuentre dentro de las limitaciones establecidas por la lista de dominios permitidos de correo electrónico.
schedule_external_look_emails schedule_look_
emails
Específico del modelo Permite que el usuario programe paneles y la apariencia para que se envíe a cualquier 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 envíe contenido de Looker a los servicios de terceros integrados con Looker a través de Looker Action Hub. Este permiso no está relacionado con las acciones de datos.
create_alerts see_looks Toda la instancia Permite al usuario crear alertas en los mosaicos del panel para recibir notificaciones cuando se cumplan o superen las condiciones especificadas. Los usuarios pueden editar, duplicar y borrar sus propias alertas y otras alertas públicas. Si el lugar de trabajo de Slack del usuario no está conectado a la instancia de Looker, no podrá crear alertas que envíen notificaciones a Slack.
download_with_limit see_looks Toda la instancia Permite al usuario descargar los resultados de una consulta con un límite aplicado.
download_without_limit see_looks Toda la instancia Permite que el usuario descargue los resultados de una consulta sin límite.
see_sql see_looks Específico del modelo Permite que el usuario vea el SQL para las consultas y los errores de SQL que resultan de la ejecución de consultas.
clear_cache_refresh access_data Específico del modelo AGREGADO 21.14 Los usuarios pueden borrar la caché y actualizar los paneles incorporados, los paneles heredados, los mosaicos del panel, los Apariencias y los Explorar.
see_drill_overlay access_data Específico del modelo Permite que el usuario realice búsquedas sin necesidad de ir a la página Explorar completa.
embed_browse_spaces Ninguno Toda la instancia Habilita el navegador de contenido para que un usuario pueda explorar carpetas desde una incorporación. Cualquier usuario incorporado al que se le otorgue el permiso embed_browse_spaces tendrá acceso a una carpeta de inserción personal y a la carpeta Compartida de tu organización, si hubiera una.

Se recomienda el permiso embed_browse_spaces para los usuarios que tienen el permiso save_content, de modo que el usuario pueda explorar carpetas cuando seleccione 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 Ninguno Toda la instancia AGREGADO 21.4 Permite que el usuario que también tiene el permiso save_content navegue a la carpeta Compartida 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 el usuario pueda guardar en la carpeta Shared, aún necesita acceso de Administrar acceso, Editar 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, Editar a la carpeta Compartido guarde contenido allí si tiene otra forma de navegar a la carpeta Compartido, por ejemplo, mediante la opción Explorar desde aquí desde un panel incorporado.

Acceso al modelo

Determina a qué modelos de LookML debe tener acceso el usuario. Será simplemente una lista de nombres de modelos.

Atributos de usuario

Determine qué atributos tendrá el usuario, si corresponde. Necesitará el nombre del atributo de usuario de Looker y el valor que el usuario debería tener para ese atributo.

Grupos

Determina a qué grupos debe pertenecer el usuario, si corresponde. Necesitarás los ID de los grupos en lugar de sus nombres. Agregar un usuario incorporado de SSO a un grupo de Looker te permite administrar el acceso de ese usuario a las carpetas de Looker. Los usuarios SSO insertados tendrán acceso a 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 regulares de Looker. En ese caso, los usuarios de SSO insertados con el mismo external_group_id tendrán acceso a una carpeta compartida, denominada "Group" que es exclusiva del grupo externo.

Funciones incorporadas

Los parámetros permissions y models crean una función para el usuario incorporado. Esta función aparece como una función incorporada 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 esté asignada a los grupos enumerados en el parámetro group_ids. Esto equivale a 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 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 la función incorporada creada con los parámetros anteriores también permitirá 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/URL DE EMBED?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 incorporada ya se había determinado. 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, de la siguiente manera:

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

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

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

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

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

El parámetro sdk=2 permite que Looker identifique si el SDK está presente y puede aprovechar las funciones adicionales que proporciona el SDK. El SDK no puede agregar este parámetro porque 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 ¿El valor es obligatorio? Descripción Tipo de datos Ejemplo
nonce Cualquier string aleatoria que desees, pero no se puede repetir 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 JSON "22b1ee700ef3dc2f500fb7"
time La hora actual como una marca de tiempo de UNIX. Integer 1407876784
session_length 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 Un identificador para cada usuario en la aplicación que está incorporando Looker. Looker usa external_user_id para diferenciar a los usuarios de SSO incorporados, de manera que cada usuario debe tener asignado un ID único.

Puedes crear un external_user_id para un usuario con cualquier string que desees, siempre y cuando sea único para ese usuario. Cada ID se asocia con un conjunto de permisos, atributos de usuario y modelos. Un solo navegador solo puede admitir 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 los usuarios durante la sesión.

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

Si usas el mismo external_user_id para varios usuarios o para el mismo usuario con varios permisos, podría provocar que los datos o el modelo no puedan
String de JSON "user-4"
permissions La lista de permisos que debe tener el usuario.

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

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

Si tu modelo LookML está localizado, puedes usar el atributo de usuario locale en la URL incorporada para especificar el idioma de inserción. Por ejemplo, si se incluye el parámetro user_attributes { "locale" : "fr_FR" }, la incorporación se cargará al francés como idioma.
Hash de strings {
  "vendor_id" : "17",
  "company" : "xactness"
}
access_filters En Looker 3.10, se quitó este parámetro, pero sigue siendo 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 No El nombre del usuario. Si se deja en blanco, first_name retendrá el valor de la última solicitud o será"Embed" (si no se estableció ningún nombre). String de JSON "Alice"
last_name No Apellido del usuario. Si se deja en blanco, last_name retendrá el valor de la última solicitud o será"Embed" (si no se estableció ningún apellido). String de JSON "Jones"
user_timezone No Si habilitaste las Zonas horarias específicas del usuario, establece el valor de la opción Zona horaria del usuario en el menú desplegable Zona horaria del panel 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 del SSO.

Sugerencia para el equipo de chat: Si quieres que el contenido incorporado se establezca de forma predeterminada en la zona horaria del usuario, 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 mira con la zona horaria predeterminada establecida en zona horaria del usuario, que utilizará la zona horaria del usuario de forma predeterminada para los usuarios incorporados y no incorporados.
  • String de JSON o nula "US/Pacific"

    o -

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

    1) 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

    Todos los parámetros anteriores son obligatorios, pero cualquier parámetro en la columna "Obligatorio" puede utilizarse con un valor vacío. Por ejemplo, puedes usar group_ids [] o user_attributes {}.

    Firma

    Para generar la firma, sigue 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 de grupo externo
      • Atributos de usuario
      • Filtros de acceso (requiere un marcador de posición vacío)
    2. Aplicar formato a todos los valores, excepto JSON y URL de incorporación, como JSON
    3. Concatena los valores con saltos de línea (\n)
    4. HMAC firma la string concatenada con tu secreto de incorporación de Looker

    Codificación

    El último paso es codificar la URL.

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

    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 indicó anteriormente, es correcto que /embed//embed/ aparezca en tu URL.

    Después de que codifique la URL, se verá 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 la 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 criptográficamente firmada.

    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 dominios permitidos de incorporación.

    También puede 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 Looker Marketplace o puedes ver una versión pública en el Portal para desarrolladores de Looker. Una vez generada, la URL de SSO se debe copiar de manera exacta y solo se puede usar una vez. De lo contrario, fallará. El Explorador de API 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.

    Cómo probar la URL incorporada

    Para probar su URL final, péguela en el Validador de URI de incorporación, en la página Incorporar de la sección Administrador 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.