L'intégration signée permet de présenter des Looks, des visualisations, des explorations, des tableaux de bord ou des tableaux de bord LookML privés à vos utilisateurs, sans qu'ils aient besoin d'identifiants Looker distincts. Les utilisateurs seront authentifiés via votre propre application.
L'intégration signée fonctionne en créant une URL Looker spéciale que vous utiliserez dans un iFrame. L'URL contient les informations que vous souhaitez partager, l'ID de l'utilisateur dans votre système et les autorisations que vous souhaitez lui accorder. Vous signerez ensuite l'URL avec une clé secrète fournie par Looker.
Pour l'intégration publique, consultez la section Intégration publique avec les balises iframe de la page de documentation Partage public, importation et incorporation de présentations.
Avant de pouvoir utiliser l'intégration signée sur votre instance Looker, un administrateur Looker doit l'activer dans le panneau Admin de Looker et créer une clé secrète d'intégration. Pour obtenir des instructions, consultez la page de documentation Premiers pas avec l'intégration : activer l'intégration signée.
Hébergement approprié pour l'intégration signée
Certains navigateurs (Safari, par exemple, ou les navigateurs avec des extensions installées qui bloquent les annonces ou les cookies de suivi) appliquent par défaut une règle relative aux cookies qui bloque les cookies tiers. Lorsque la fonctionnalité Intégration sans cookie est activée, les navigateurs qui bloquent les cookies tiers peuvent authentifier les utilisateurs dans l'iframe intégré sur différents domaines. L'authentification des intégrations sans cookie nécessite une configuration côté serveur. Pour obtenir des exemples de configuration, consultez la page de documentation Intégration sans cookie.
Si la fonctionnalité Intégration sans cookie n'est pas activée, Looker utilise des cookies pour authentifier les utilisateurs. Dans ce cas, il n'est pas possible d'authentifier l'iFrame intégré sur plusieurs domaines dans les navigateurs qui bloquent les cookies tiers (sauf si l'utilisateur modifie les paramètres de confidentialité des cookies de son navigateur). Par exemple, si vous souhaitez intégrer des informations sur https://mycompany.com, vous devez vous assurer que Looker partage le même domaine, tel que https://analytics.mycompany.com. Dans ce cas, si Looker héberge votre instance, contactez l'assistance Looker pour configurer le DNS nécessaire à l'utilisation d'un domaine personnalisé. Looker pourra ainsi partager le même domaine que l'application intégrée et utiliser des cookies propriétaires, qui sont acceptés par défaut dans tous les navigateurs.
Si vous disposez d'une instance Looker hébergée par le client, assurez-vous que l'application qui utilisera l'intégration signée utilise le même domaine que votre instance Looker.
Contrôler la visibilité client avec un système fermé
Dans une configuration d'intégration signée, il est courant que les utilisateurs Looker présentent des données à leurs propres clients tout en ayant des clients issus de différentes entreprises ou groupes qui ne doivent pas avoir connaissance de l'existence de chacun. Dans ce scénario, pour protéger les informations privées de vos clients, nous vous recommandons fortement de configurer Looker comme un système fermé, également appelé installation multi-locataire. Dans un système fermé, le contenu est cloisonné pour empêcher les utilisateurs de différents groupes d'avoir connaissance de l'existence des uns et des autres. Pour cette raison, nous vous recommandons d'activer l'option Système fermé avant d'accorder l'accès à votre instance à des utilisateurs externes.
Pour en savoir plus, consultez les pages de documentation Concevoir et configurer un système de niveaux d'accès et Bonnes pratiques de sécurité pour l'analyse intégrée.
Générer l'URL d'ingestion signée
Il existe plusieurs façons de générer l'URL d'intégration signée. Vous pouvez utiliser l'une de ces méthodes :
Vous pouvez générer une URL d'intégration signée en utilisant l'option Obtenir l'URL d'intégration sur le menu à trois points du tableau de bord d'un tableau de bord, ou sur le menu Explorer les actions en forme d'engrenage d'un Look ou Explore.
Utilisez le point de terminaison de l'API Looker pour créer une URL d'intégration signée, comme décrit plus loin dans ce document.
Codez l'URL d'intégration signée. Pour créer l'URL appropriée, vous devrez écrire du code afin de l'encoder correctement avec votre clé secrète et de générer d'autres éléments liés à la sécurité. Vous trouverez plusieurs exemples de scripts dans le dépôt GitHub d'exemples d'intégration Looker. Les sections suivantes expliquent les informations que vous devrez fournir à ces scripts, ainsi que la façon de créer une URL d'intégration signée sans utiliser de script.
Coder manuellement l'URL d'intégration signée
Pour coder l'URL d'intégration signée, commencez par collecter les informations Looker nécessaires, puis créer l'URL d'intégration signée.
Collecter les informations Looker nécessaires
Comme point de départ pour créer votre URL, vous devez d'abord déterminer toutes les informations à inclure. Vous avez alors besoin de :
Intégrer une URL
Récupérez l'URL de l'élément Look, Explore, de la visualisation de requête ou du tableau de bord que vous souhaitez intégrer. Supprimez ensuite le domaine et placez /embed avant le chemin d'accès, comme suit :
| Élément | Modèle d'URL normal | Intégrer une URL |
|---|---|---|
| Look | https://instance_name.looker.com/looks/4 |
/embed/looks/4 |
| Explorer | https://instance_name.looker.com/explore/my_model/my_explore |
/embed/explore/my_model/my_explore |
| Visualisation des requêtes | https://instance_name.looker.com/explore/my_model/my_explore?qid=1234567890abcdefghij12Les 22 caractères alphanumériques qui suivent le paramètre qid= dans l'URL Explore constituent le Query.client_id. La valeur Query.client_id est une chaîne unique qui représente la requête et les paramètres de visualisation.Pour intégrer une visualisation de requête, récupérez la visualisation de requête.Query.client_id valeur, et copiez laQuery.client_id dans votre URL d'intégration.Vous pouvez utiliser l'interface utilisateur Looker Explore pour créer une requête avec une visualisation prise en charge et copier la valeur Query.client_id du paramètre qid=, ou vous pouvez récupérer la valeur Query.client_id avec l'API Looker, en utilisant la méthode Get Query, par exemple. |
/embed/query-visualization/Query.client_id |
| Tableau de bord défini par l'utilisateur | https://instance_name.looker.com/dashboards/1Incluez toutes les valeurs de filtre du tableau de bord masquant les valeurs de filtre, le paramètre hide_filter dans l'URL du tableau de bord. |
|
| tableau de bord LookML | https://instance_name.looker.com/dashboards/my_model::my_dashboard |
/embed/dashboards/my_model::my_dashboard |
| Conversational Analytics | Pour la page des conversations : https://instance_name.looker.com/conversationsPour la page des agents : https://instance_name.looker.com/agentsPour une conversation spécifique : https://instance_name.looker.com/conversations/conversation_idPour plus d'informations, consultez la page de documentation Embedding Conversational Analytics. |
/embed/conversations/embed/agents/embed/conversations/c9f370ac830b4669aeb494396422004c |
Autorisations
Un ensemble d'autorisations définit ce qu'est unutilisateur ougroupe C'est possible. Les autorisations peuvent être appliquées de deux manières :
- Propre au modèle : ce type d'autorisation ne s'applique qu'aux ensembles de modèles qui font partie du même rôle.
- À l'échelle de l'instance : ce type d'autorisation s'applique à l'ensemble de l'instance Looker. Les utilisateurs intégrés disposant d'autorisations à l'échelle de l'instance peuvent effectuer certaines fonctions dans l'ensemble de l'instance Looker, mais ne peuvent pas accéder au contenu basé sur des modèles qui ne sont pas inclus dans l'ensemble de modèles de leur rôle.
Déterminez les autorisations que vous souhaitez accorder à l'utilisateur. La liste suivante présente toutes les autorisations disponibles pour l'intégration signée. Les autorisations qui ne figurent pas sur la liste suivante ne sont pas prises en charge pour l'intégration signée :
| Autorisation | Dépend de | Type | Définition |
|---|---|---|---|
access_data |
Aucun | Propre au modèle | Permet à l'utilisateur d'accéder aux données (obligatoire pour afficher les Looks, les tableaux de bord ou les explorations) |
see_lookml_dashboards |
access_data |
Propre au modèle | Permet à l'utilisateur de voir les tableaux de bord LookML. Cette autorisation est requise même si un utilisateur dispose d'un accès Afficher au dossier du tableau de bord. |
see_looks |
access_data |
Propre au modèle | Permet à l'utilisateur de voir les Looks |
see_user_dashboards |
see_looks |
Propre au modèle | Permet à l'utilisateur de consulter les tableaux de bord définis par l'utilisateur et de parcourir les dossiers à partir d'une intégration |
explore |
see_looks |
Propre au modèle | Permet à l'utilisateur de voir les pages "Explorer" |
create_table_calculations |
explore |
À l'échelle de l'instance | Nécessaire pour créer des calculs de tables dans une exploration |
create_custom_fields |
explore |
À l'échelle de l'instance | Nécessaire pour créer des champs personnalisés dans une exploration |
can_create_forecast |
explore |
À l'échelle de l'instance | Permet aux utilisateurs de créer ou de modifier des prévisions dans les visualisations. |
save_content |
see_looks |
À l'échelle de l'instance | Permet à l'utilisateur d'apporter et d'enregistrer des modifications aux Looks et aux tableaux de bord |
send_outgoing_webhook |
see_looks |
Propre au modèle | Permet à l'utilisateur de planifier l'envoi de contenu Looker à un webhook arbitraire |
send_to_s3 |
see_looks |
Propre au modèle | Permet aux utilisateurs de planifier l'envoi de contenu Looker vers un bucket Amazon S3 |
send_to_sftp |
see_looks |
Propre au modèle | Permet à l'utilisateur de programmer la livraison de contenu Looker vers un serveur SFTP |
schedule_look_emails |
see_looks |
Propre au modèle | Permet à l'utilisateur de planifier l'envoi de contenus Looker à sa propre adresse e-mail (si elle est définie avec un attribut utilisateur nommé "email") ou à une adresse e-mail qui respecte les limites définies par la liste d'autorisation des domaines de messagerie. Permet aux utilisateurs disposant des autorisations create_alerts d'envoyer des notifications d'alerte à une adresse e-mail qui respecte les limites définies par la liste d'autorisation des domaines de messagerie. |
schedule_external_look_emails |
schedule_look_emails |
Propre au modèle | Permet aux utilisateurs de planifier l'envoi de contenu Looker vers n'importe quel domaine de messagerie. Permet à l'utilisateur disposant des permissions create_alerts d'envoyer des notifications d'alerte à n'importe quel domaine de messagerie. |
send_to_integration |
see_looks |
Propre au modèle | Permet à l'utilisateur de fournir du contenu Looker aux services tiers intégrés à Looker via Looker Action Hub. Cette autorisation n'est pas liée aux actions de données . |
schedule_without_limit |
see_looks |
Propre au modèle | Ajouté dans la version 26.4 Lorsqu'elle est associée à au moins une autre autorisation permettant à un utilisateur de distribuer du contenu Looker, cette autorisation permet aux utilisateurs de distribuer des Looks ou des explorations qui envoient toutes les lignes de données. Cette autorisation permet d'afficher l'option Tous les résultats dans le planificateur Looker pour les Looks et les explorations. |
create_alerts |
see_looks |
À l'échelle de l'instance | Permet aux utilisateurs de créer des alertes sur les tuiles de tableau de bord pour recevoir des notifications lorsque des conditions spécifiques sont remplies ou dépassées. Les utilisateurs peuvent modifier, dupliquer et supprimer leurs propres alertes, ainsi que les alertes publiques d'autres utilisateurs. Si l'espace de travail Slack de l'utilisateur n'est pas connecté à l'instance Looker, il ne pourra pas créer d'alertes qui envoient des notifications à Slack. |
download_with_limit |
see_looks |
À l'échelle de l'instance | Permet à l'utilisateur de télécharger les résultats d'une requête avec une limite appliquée |
download_without_limit |
see_looks |
À l'échelle de l'instance | Permet à l'utilisateur de télécharger les résultats d'une requête sans limite. |
see_sql |
see_looks |
Propre au modèle | Permet à l'utilisateur de voir le code SQL des requêtes et les éventuelles erreurs SQL résultant de l'exécution des requêtes |
clear_cache_refresh |
access_data |
Propre au modèle | Les utilisateurs peuvent vider le cache et actualiser les tableaux de bord intégrés, les anciens tableaux de bord, les vignettes de tableau de bord, les Looks et les explorations. |
see_drill_overlay |
access_data |
Propre au modèle | Permet à l'utilisateur d'analyser les données sans avoir à accéder à la page "Explorer" complète. |
manage_spaces |
Aucun | À l'échelle de l'instance | Permet d'utiliser le navigateur de contenu afin que les utilisateurs puissent créer, copier, déplacer et supprimer des dossiers. Les utilisateurs doivent également disposer de l'autorisation d'accès au contenu Gérer l'accès, Modifier pour le dossier ou, s'ils créent un dossier, pour le dossier parent. |
embed_browse_spaces |
Aucun | À l'échelle de l'instance |
Active l'explorateur de contenu pour qu'un utilisateur puisse parcourir les dossiers à partir d'un élément intégré. Tout utilisateur intégré disposant de l'autorisation embed_browse_spaces a accès à un dossier d'intégration personnel et au dossier Partagé de votre organisation, le cas échéant.
L'autorisation embed_browse_spaces est recommandée pour les utilisateurs disposant de l'autorisation save_content, afin qu'ils puissent parcourir les dossiers lorsqu'ils sélectionnent l'emplacement où enregistrer le contenu.
Pour afficher le contenu des dossiers, l'utilisateur doit également disposer des autorisations see_looks, see_user_dashboards et see_lookml_dashboards.
L'autorisation embed_browse_spaces est requise pour les utilisateurs de l'intégration qui souhaitent marquer des tableaux de bord ou des Looks comme favoris, car cette action nécessite d'accéder au dossier Favoris.
|
embed_save_shared_space |
Aucun | À l'échelle de l'instance |
Permet à l'utilisateur qui dispose également de l'autorisation save_content de naviguer vers le dossier Partagé de l'organisation, s'il en existe un, depuis la boîte de dialogue Enregistrer. Les utilisateurs disposant de l'autorisation save_content, mais pas de l'autorisation embed_save_shared_space, ne pourront enregistrer du contenu que dans leur dossier d'intégration personnel.
L'autorisation embed_save_shared_space ne remplace pas les autorisations d'accès au contenu . Par exemple, pour permettre à un utilisateur de pouvoir enregistrer dans le dossier Shared, il a toujours besoin d'un accès Manage Access, Edit au dossier Shared. De plus, l'absence de l'autorisation embed_save_shared_space n'empêche pas un utilisateur disposant de l'autorisation save_content et de l'accès Gérer l'accès, Modifier au dossier Partagé d'y enregistrer du contenu s'il dispose d'un autre moyen d'accéder au dossier Partagé, par exemple en utilisant l'option Explorer à partir d'ici depuis un tableau de bord intégré.
|
gemini_in_looker |
Aucun | Propre au modèle | Cette autorisation est la seule incluse dans le rôle par défaut Gemini. Cette autorisation permet aux utilisateurs d'effectuer les tâches associées à l'une des fonctionnalités Gemini dans Looker activées sur la page Gemini dans Looker du panneau Admin. Des autorisations supplémentaires peuvent être requises pour certaines tâches. |
chat_with_agent |
gemini_in_looker |
Propre au modèle | Ajouté le 25.18 Les utilisateurs de Conversational Analytics peuvent discuter avec des agents de données basés sur les données de jusqu'à cinq Looker Explores ou avec des agents de données de tableau de bord. Des autorisations supplémentaires sont requises pour discuter avec les agents de données du tableau de bord. |
chat_with_explore |
chat_with_agent |
Propre au modèle | Ajouté le 25.18 Les utilisateurs de Conversational Analytics peuvent discuter avec une exploration Looker s'ils disposent également des autorisations supplémentaires requises. |
save_agents |
chat_with_explore |
Propre au modèle | Ajouté dans la version 25.18 Les utilisateurs de Conversational Analytics peuvent créer, modifier, supprimer et partager des agents de données dans des tableaux de bord ou des explorations. Pour modifier, supprimer ou partager un agent de données créé par un autre utilisateur, les utilisateurs doivent disposer d'un rôle contenant cette autorisation sur chaque modèle utilisé par l'agent, ainsi que des autorisations supplémentaires requises et de l'autorisation Gérer l'accès, Modifier pour l'agent. |
admin_agents |
gemini_in_looker |
Propre au modèle | Added 25.18 Les utilisateurs peuvent créer, modifier, partager et supprimer des agents de données à utiliser avec l'API Conversational Analytics et Conversational Analytics intégré. Lorsqu'un utilisateur crée un agent de données, il obtient automatiquement l'accès Gérer l'accès, Modifier à l'agent de données. Avec cette autorisation, un utilisateur n'a pas besoin d'avoir accès au contenu de l'agent de données pour modifier, supprimer ou partager un agent de données créé par un autre utilisateur. |
Accès au modèle
Déterminer les modèles LookML auxquels l'utilisateur doit avoir accès. Il s'agit d'une liste de noms de modèles.
Attributs utilisateur
Déterminez les attributs utilisateur dont l'utilisateur doit disposer, le cas échéant. Vous aurez besoin du nom de l'attribut utilisateur de Looker, ainsi que de la valeur que l'utilisateur doit avoir pour cet attribut.
Groupes
Déterminez les groupes auxquels l'utilisateur doit appartenir, le cas échéant. Vous aurez besoin des ID de groupe, et non des noms de groupe. Ajouter un utilisateur d'intégration signée à un groupe Looker vous permet de gérer l'accès de cet utilisateur aux dossiers Looker. Les utilisateurs d'intégrations signées auront accès à tous les dossiers partagés avec les membres de leurs groupes Looker.
Vous pouvez également utiliser le paramètre external_group_id pour créer un groupe externe aux groupes Looker standards. Dans ce cas, les utilisateurs intégrés authentifiés ayant le même external_group_id auront accès à un dossier partagé, nommé "Groupe", qui est propre au groupe externe.
Rôles intégrés
Les paramètres permissions et models créent un rôle pour l'utilisateur intégré. Ce rôle apparaît comme un « rôle intégré » dans le Utilisateurs page dans Looker's Administrateur section. Si les paramètres permissions, models et group_ids sont tous spécifiés dans l'URL d'intégration, le rôle intégré est cumulatif par rapport aux rôles déjà attribués aux groupes listés dans le paramètre group_ids. Comme pour les rôles standards, tous les rôles dans Looker sont cumulatifs.
Par exemple, supposons que vous ayez un groupe existant dans Looker avec l'ID de groupe 1, et que ce groupe dispose déjà de l'autorisation explore pour un modèle nommé model_one, et que vous créiez une URL d'intégration avec les paramètres suivants :
group_ids=["1"]permissions=["access_data","see_looks"]models=["model_two"]
Dans ce cas, l'utilisateur intégré pourra afficher et explorer les données sur model_one. Le rôle d'intégration créé avec les paramètres précédents lui permettra également d'afficher les données sur model_two.
Créer l'URL d'intégration
Une URL d'intégration signée se présente au format suivant :
https://HOST/login/embed/EMBED URL?PARAMETERS&signature=SIGNATURE
Hôte
L'hôte est l'emplacement où votre instance Looker est hébergée. Par exemple, analytics.mycompany.com. Veillez à inclure le numéro de port si vous n'avez pas activé la redirection de port, par exemple analytics.mycompany.com:9999.
Intégrer une URL
L'URL d'intégration a été déterminée précédemment. Son format devrait ressembler à ceci :
/embed/looks/4/embed/explore/my_model/my_explore/embed/query-visualization/Query.client_id/embed/dashboards/1ou/embed/dashboards-legacy/1/embed/dashboards/my_model::my_dashboardou/embed/dashboards-legacy/my_model::my_dashboard
Cela signifie que le modèle /embed//embed/ apparaîtra dans votre URL finale. C'est normal.
Si vous utilisez des événements JavaScript intégrés, veillez à ajouter le paramètre embed_domain (domaine où l'iFrame est utilisé) à la fin de l'URL d'intégration, comme ceci :
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com
Le paramètre embed_domain est ajouté à l'URL d'intégration avant l'encodage de l'URL. Si votre URL d'intégration contient déjà des paramètres de requête de contenu (tels que des valeurs de filtre), ajoutez le paramètre embed_domain en utilisant une esperluette (&) :
/embed/looks/4?filter_name=value
/embed/looks/4?filter_name=value&embed_domain=https://mywebsite.com
Si vous utilisez le SDK d'intégration, veillez à ajouter le paramètre embed_domain et à inclure également sdk=2 à la fin de l'URL d'intégration, comme suit :
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com&sdk=2
Le paramètre sdk=2 permet à Looker d'identifier que le SDK est présent et de profiter des fonctionnalités supplémentaires fournies par le SDK. Le SDK ne peut pas ajouter ce paramètre lui-même car il fait partie de l'URL signée.
Paramètres
Les paramètres d'URL suivants sont utilisés pour spécifier les informations nécessaires à l'intégration signée :
| Paramètre | Valeur par défaut | Description | Type de données | Exemple |
|---|---|---|---|---|
nonce |
Valeur requise | Vous pouvez choisir n'importe quelle chaîne de caractères aléatoire, mais elle ne doit pas se répéter dans l'heure qui suit et doit comporter moins de 255 caractères.Cela empêche un pirate informatique de renvoyer l'URL d'un utilisateur légitime pour collecter des informations auxquelles il ne devrait pas avoir accès. | Chaîne JSON | "22b1ee700ef3dc2f500fb7" |
time |
Valeur requise | L'heure actuelle sous forme d'horodatage UNIX. | Integer | 1407876784 |
session_length |
Valeur requise | Le nombre de secondes pendant lesquelles l'utilisateur doit rester connecté à Looker, entre 0 et 2 592 000 secondes (30 jours). | Integer | 86400 |
external_user_id |
Valeur requise | Un identifiant pour chaque utilisateur de l'application qui intègre Looker. Looker utilise external_user_id pour différencier les utilisateurs intégrés authentifiés. Chaque utilisateur doit donc disposer d'un ID unique.Vous pouvez créer un external_user_id pour un utilisateur avec n'importe quelle chaîne de caractères, à condition qu'elle soit unique pour cet utilisateur. Chaque ID est associé à un ensemble d'autorisations, d'attributs utilisateur et de modèles. Un seul navigateur ne peut prendre en charge qu'un seul external_user_id ou une seule session utilisateur à la fois. Il est impossible de modifier les autorisations ou les attributs d'un utilisateur en cours de session.Pour des raisons de sécurité, assurez-vous de ne pas utiliser le même external_user_id dans différentes sessions d'intégration pour différents utilisateurs interactifs. Assurez-vous également de ne pas utiliser le même external_user_id pour un même utilisateur disposant de différentes autorisations, valeurs d'attribut utilisateur ou accès au modèle.Si vous utilisez le même external_user_id pour plusieurs utilisateurs ou pour le même utilisateur avec plusieurs autorisations, attributs utilisateur ou ensembles de modèles, les données peuvent être visibles par des utilisateurs qui n'y auraient normalement pas accès. |
Chaîne JSON | "user-4" |
permissions |
Valeur requise | Liste des autorisations dont l'utilisateur doit disposer.Pour obtenir la liste des autorisations autorisées, consultez la section Autorisations sur cette page. | Tableau de chaînes | [ "access_data", "see_looks"] |
models |
Valeur requise | Liste des noms de modèles auxquels l'utilisateur doit avoir accès. | Tableau de chaînes | [ "model_one", "model_two"] |
group_ids |
[] | Liste des groupes Looker dont l'utilisateur doit être membre, le cas échéant. Utilisez les ID de groupe au lieu des noms de groupe. | Tableau de chaînes | ["4", "3"] |
external_group_id |
"" | Un identifiant unique pour le groupe auquel appartient l'utilisateur dans l'application qui intègre Looker.Les utilisateurs autorisés à enregistrer du contenu et qui partagent un ID de groupe externe peuvent enregistrer et modifier du contenu dans un dossier Looker partagé appelé "Groupe". Le paramètre external_group_id est la seule méthode disponible pour créer des groupes externes d'utilisateurs intégrés. Il n'est pas possible de configurer des groupes d'utilisateurs externes intégrés depuis l'interface utilisateur de Looker.La longueur du external_group_id ne doit pas dépasser 81 caractères. Un dossier correspondant est créé pour le groupe. Les noms de dossiers sont limités à 100 caractères. Le nom du dossier est préfixé par « Embed Shared Group », donc external_group_id est limité à 81 caractères pour respecter la limite de 100 caractères ou moins. |
Chaîne JSON | "Accounting" |
user_attributes |
{} | Liste des attributs utilisateur dont l'utilisateur doit disposer, le cas échéant. Contient une liste de noms d'attributs utilisateur suivis de la valeur de l'attribut utilisateur.Si votre modèle LookML est localisé, vous pouvez utiliser l'attribut utilisateur locale dans l'URL d'intégration pour spécifier une langue pour l'intégration. Par exemple, si vous incluez le paramètre user_attributes { "locale" : "fr_FR" }, l'intégration chargera le français comme langue. |
Hachage des chaînes | { "vendor_id" : "17", "company" : "xactness"} |
access_filters |
Valeur requise | Ce paramètre a été supprimé dans Looker 3.10, mais il est toujours obligatoire dans l'URL. Utilisez access_filters avec un espace réservé vide, par exemple access_filters={}. |
Espace réservé vide | {} |
first_name |
"" | Prénom de l'utilisateur. Si laissé vide, first_name conservera la valeur de la dernière requête, ou sera « Embed » si aucun prénom n’a jamais été défini. |
Chaîne JSON | "Alice" |
last_name |
"" | Le nom de famille de l'utilisateur. Si vous ne saisissez rien, last_name conservera la valeur de la dernière demande ou affichera "Embed" si aucun nom de famille n'a jamais été défini. |
Chaîne JSON | "Jones" |
user_timezone |
"" | Si vous avez activé Fuseaux horaires spécifiques à l'utilisateur, définit la valeur de l'option Fuseau horaire du visualiseur dans la liste déroulante Fuseau horaire sur l'interface ou le tableau de bord intégré. Ce paramètre ne modifie pas directement le fuseau horaire dans lequel le contenu est affiché ; l’utilisateur devra sélectionner un fuseau horaire dans la liste déroulante.Consultez les valeurs valides sur la page de documentation de référence du fuseau horaire d'intégration signé .Conseil de l'équipe Chat : Si vous souhaitez que le fuseau horaire du lecteur soit défini par défaut pour votre contenu intégré, utilisez l'une des méthodes suivantes :?query_timezone=user_timezone à l'URL d'intégration. Exemple :/embed/dashboards/1?query_timezone=user_timezone |
Chaîne JSON ou valeur nulle | "US/Pacific"- ou -null |
force_logout_login |
Valeur requise | Si un utilisateur Looker standard est déjà connecté à Looker et qu'il consulte un élément intégré signé, vous pouvez choisir si :1) il doit afficher l'élément avec ses identifiants actuels ;ou2) ils doivent se déconnecter, puis se reconnecter avec les identifiants d'intégration signés. | Booléen (vrai ou faux) | true |
ca_chat |
true |
Si vous avez activé Conversational Analytics et la fonctionnalité Activer les agents du tableau de bord, détermine si le volet de conversation de l'agent du tableau de bord est visible pour les utilisateurs intégrés. Si true, l' |
Booléen (vrai ou faux) | true |
Signature
Looker utilise la signature pour vérifier que le code secret d'intégration approprié a été utilisé pour générer la signature dans l'URL d'intégration et que les paramètres de l'URL d'intégration n'ont pas changé. Si le secret d'intégration ou les paramètres d'URL sont différents ou ont changé, la signature ne correspondra pas et l'authentification sera rejetée.
Par conséquent, la signature dans l'URL d'intégration fournit une preuve cryptographique solide que l'URL d'intégration n'a pas été modifiée en transit et qu'elle a été créée par une partie de confiance qui possède la clé secrète d'intégration.
Pour générer la signature, procédez comme suit.
- Rassemblez les valeurs des paramètres suivants dans cet ordre :
- Hôte, suivi de
login/embed/(par exemple,analytics.mycompany.com/login/embed/) - Intégrer une URL
- Nonce
- Heure actuelle
- Durée de la session
- ID utilisateur externe
- Autorisations
- Modèles
- Identifiants de groupe
- ID de groupe externe
- Attributs utilisateur
- Filtres d'accès (nécessite un espace réservé vide)
- visibilité des agents de données du tableau de bord d'analyse conversationnelle
- Hôte, suivi de
- Mettez en forme toutes les valeurs autres que "URL hôte" et "URL d'intégration" au format JSON.
- Concaténez les valeurs avec des sauts de ligne (
\n) - Signez la chaîne concaténée avec votre clé secrète d'intégration Looker à l'aide de HMAC-SHA1.
Encodage
La dernière étape consiste à encoder votre URL.
Avant Vous encodez l'URL ; une URL d'intégration correctement formatée qui utilise tous les paramètres possibles pourrait ressembler à ceci :
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={}&
ca_chat=false&
first_name="Alice"&
last_name="Jones"&
user_timezone="US/Pacific"&
force_logout_login=true&
signature=123456789ABCDEFGHIJKL
Comme indiqué précédemment, il est correct que /embed//embed/ apparaisse dans votre URL.
Après Vous encodez l'URL, cela ressemblera à ceci :
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
ca_chat=false&
first_name=%22Alice%22&
last_name=%22Jones%22&
user_timezone=%22US%2FPacific%22&
force_logout_login=true&
signature=123456789ABCDEFGHIJKL
Utiliser le point de terminaison de l'API Create Signed Embed Url
L'API Looker inclut le point de terminaison Create Signed Embed Url, qui accepte un ensemble de paramètres d'intégration signés incluant l'URL du contenu que vous souhaitez intégrer et renvoie une URL complète, encodée et signée de manière cryptographique.
Pour utiliser ce point de terminaison d'API à partir d'un serveur Web, celui-ci doit pouvoir s'authentifier auprès de l'API Looker avec des droits d'administrateur. Le domaine du serveur Web doit également figurer dans la liste d'autorisation des domaines d'intégration.
Vous pouvez également utiliser l'API Explorer pour générer une URL signée qui utilise ce point de terminaison. Vous pouvez installer l'explorateur d'API sur votre instance Looker depuis le Marketplace Looker. Une fois générée, l'URL signée doit être copiée exactement et ne peut être utilisée qu'une seule fois. Sinon, elle ne fonctionnera pas. L'explorateur d'API est également utile pour générer une URL signée et la comparer à une URL signée créée manuellement à des fins de dépannage.
Pour en savoir plus sur l'API Looker, consultez la page de documentation Premiers pas avec l'API Looker.
Tester l'URL d'intégration
Pour tester votre URL finale, collez-la dans le validateur d'URI d'intégration sur la page Intégrer de la section Admin de Looker. Bien que cette option ne puisse pas vous indiquer si les données et les autorisations que vous envisagez ont été configurées correctement, elle peut valider le bon fonctionnement de votre authentification.