L'intégration signée est un moyen de présenter à vos utilisateurs des Looks, des visualisations, des explorations, des tableaux de bord ou des tableaux de bord LookML intégrés privés, sans qu'ils aient besoin d'une connexion Looker distincte. À la place, les utilisateurs seront authentifiés via votre propre application.
L'intégration signée consiste à créer 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 voulez accorder à l'utilisateur. Vous devrez ensuite signer l'URL avec une clé secrète fournie par Looker.
Pour une intégration publique, consultez la section Intégration publique avec des balises iframe
de la page de documentation Partage, importation et intégration publiques de Looks.
Pour que vous puissiez utiliser l'intégration signée sur votre instance Looker, un administrateur Looker doit l'activer dans le panneau d'administration 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 (par exemple, Safari ou ceux dont les extensions sont installées et qui bloquent les annonces ou les cookies de suivi) appliquent par défaut des règles relatives aux cookies qui bloquent les cookies tiers. Lorsque la fonctionnalité d'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. Consultez la page de documentation sur l'intégration sans cookie pour obtenir des exemples de configuration.
Si la fonctionnalité Intégration sans cookie n'est pas activée, Looker utilise des cookies pour l'authentification des utilisateurs. Dans ce cas, toute tentative d'authentification de l'iFrame intégré sur plusieurs domaines n'est pas possible 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, par exemple https://analytics.mycompany.com
. Dans ce cas, si Looker héberge votre instance, contactez l'assistance Looker pour définir la configuration DNS nécessaire à l'utilisation du domaine personnalisé. Looker pourra ainsi partager le même domaine que l'application d'intégration 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 un 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é auprès des clients à l'aide d'un système fermé
Il est courant dans une configuration d'intégration signée que les utilisateurs de Looker présentent des données à leurs propres clients, tandis que ceux de différentes entreprises ou groupes ne doivent pas se connaître. Dans ce scénario, pour protéger les informations privées de vos clients, nous vous recommandons vivement de configurer Looker en tant que système fermé, également appelé installation mutualisée. Dans un système fermé, les contenus sont cloisonnés pour empêcher les utilisateurs de différents groupes de se connaître. C'est pourquoi nous vous recommandons d'activer l'option Closed System (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 les analyses intégrées.
Générer l'URL d'intégration signée
Il existe plusieurs façons de générer l'URL d'intégration signée. Vous pouvez utiliser l'une des méthodes suivantes:
Vous pouvez générer une URL d'intégration signée à l'aide de l'option Obtenir une URL d'intégration dans le menu à trois points du tableau de bord, ou via le menu en forme de roue dentée des actions d'exploration d'une présentation ou d'une exploration.
Utilisez le point de terminaison d'URL d'intégration signée de l'API Looker, comme décrit plus loin dans ce document.
Utilisez le SDK Looker Embed.
Codez l'URL d'intégration signée. Pour créer l'URL appropriée, vous devrez écrire du code qui vous permettra 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 décrivent les informations que vous devez fournir à ces scripts et expliquent comment 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éez l'URL d'intégration signée.
Collecter les informations Looker nécessaires
Pour créer votre URL, commencez par déterminer toutes les informations à inclure. Vous avez alors besoin de :
Intégrer une URL
Récupérez l'URL de la présentation, de l'exploration, de la visualisation des requêtes 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 | Format 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=1234567890abcdefghij12 Les 22 caractères alphanumériques qui suivent le paramètre qid= dans l'URL d'exploration 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 des requêtes, récupérez la valeur Query.client_id de la visualisation des requêtes, puis copiez Query.client_id dans l'URL d'intégration.Vous pouvez utiliser l'interface utilisateur Explorer de Looker pour créer une requête avec une visualisation prise en charge et copier la valeur Query.client_id du paramètre qid= , ou récupérer Query.client_id avec l'API Looker, à l'aide de 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/1 Incluez les valeurs de filtre du tableau de bord ou, si vous masquez des valeurs de filtre, le paramètre hide_filter dans l'URL du tableau de bord. |
|
Ancien tableau de bord défini par l'utilisateur | https://instance_name.looker.com/dashboards-legacy/1 |
/embed/dashboards-legacy/1 |
tableau de bord LookML | https://instance_name.looker.com/dashboards/my_model::my_dashboard |
/embed/dashboards/my_model::my_dashboard |
Tableau de bord LookML hérité | https://instance_name.looker.com/dashboards-legacy/my_model::my_dashboard |
/embed/dashboards-legacy/my_model::my_dashboard |
Le contenu intégré reflète toujours la version de production du contenu. Les modifications apportées en mode Développement qui affectent le contenu et qui n'ont pas été déployées en production n'apparaîtront pas dans une intégration.
Autorisations
Un ensemble d'autorisations définit ce qu'un utilisateur ou un groupe peut faire. Les autorisations peuvent être appliquées de deux manières:
- Spécifique au modèle:ce type d'autorisation n'est appliqué 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'instance Looker dans son ensemble. Les utilisateurs intégrés disposant d'autorisations à l'échelle de l'instance peuvent effectuer certaines fonctions sur l'ensemble de l'instance Looker, mais ne peuvent pas accéder au contenu basé sur des modèles non inclus dans l'ensemble de modèles de leur rôle.
Déterminez les autorisations qui seront accordées à l'utilisateur. La liste suivante présente toutes les autorisations disponibles pour l'intégration signée. Les autorisations qui ne figurent pas dans la liste suivante ne sont pas compatibles avec l'intégration signée:
Autorisation | Dépend de | Type | Définition |
---|---|---|---|
access_data |
Aucune | Spécifique au modèle | Autorise l'utilisateur à accéder aux données (requis pour afficher des Looks, des tableaux de bord ou des explorations) |
see_lookml_dashboards |
access_data |
Spécifique au modèle | Permet à l'utilisateur de voir les tableaux de bord LookML |
see_looks |
access_data |
Spécifique au modèle | Permettre à l'utilisateur de voir les Looks |
see_user_dashboards |
see_looks |
Spécifique au modèle | Permet à l'utilisateur d'afficher les tableaux de bord définis par l'utilisateur et de parcourir les dossiers depuis une intégration |
explore |
see_looks |
Spécifique au modèle | Permet à l'utilisateur de voir les pages "Explorer" |
create_table_calculations |
explore |
À l'échelle de l'instance | Nécessité de créer des calculs de table dans une exploration |
create_custom_fields |
explore |
À l'échelle de l'instance | ADDED 22.4 Nécessaire pour créer des champs personnalisés dans une exploration |
can_create_forecast |
explore |
À l'échelle de l'instance | ADDED 22.12 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 des modifications aux Looks et aux tableaux de bord et de les enregistrer |
send_outgoing_webhook |
see_looks |
Spécifique au modèle | Permet à l'utilisateur de planifier l'envoi de contenu Looker vers un webhook arbitraire |
send_to_s3 |
see_looks |
Spécifique au modèle | Permet à l'utilisateur de planifier l'envoi de contenu Looker vers un paquet Amazon S3 |
send_to_sftp |
see_looks |
Spécifique au modèle | Permet à l'utilisateur de planifier l'envoi de contenu Looker vers un serveur SFTP |
schedule_look_emails |
see_looks |
Spécifique au modèle | Permet à l'utilisateur de planifier l'envoi de contenu Looker à son propre adresse e-mail (si définie avec un attribut utilisateur nommé "email") ou à une adresse e-mail respectant 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 respectant les limites définies par la liste d'autorisation des domaines de messagerie. |
schedule_external_look_emails |
schedule_look_emails |
Spécifique au modèle | Permet à l'utilisateur de planifier l'envoi de contenu Looker à n'importe quel domaine de messagerie. Permet aux utilisateurs disposant des autorisations create_alerts d'envoyer des notifications d'alerte à n'importe quel domaine de messagerie. |
send_to_integration |
see_looks |
Spécifique au modèle | Permet à l'utilisateur de diffuser du contenu Looker aux services tiers intégrés à Looker via Looker Action Hub. Cette autorisation n'est pas liée aux actions sur les données. |
create_alerts |
see_looks |
À l'échelle de l'instance | Permet à l'utilisateur de créer des alertes sur les vignettes du tableau de bord afin de recevoir des notifications lorsque les conditions spécifiées sont remplies ou dépassées. Les utilisateurs peuvent modifier, dupliquer et supprimer leurs propres alertes, ainsi que les alertes publiques des autres utilisateurs. Si l'espace de travail Slack de l'utilisateur n'est pas connecté à l'instance Looker, l'utilisateur 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 |
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 appliquer de limite |
see_sql |
see_looks |
Spécifique au modèle | Permet à l'utilisateur de voir le code SQL des requêtes et les erreurs SQL résultant de l'exécution de requêtes |
clear_cache_refresh |
access_data |
Spécifique au modèle | ADDED 21.14 Les utilisateurs peuvent vider le cache et actualiser les tableaux de bord intégrés, les anciens tableaux de bord, les vignettes des tableaux de bord, les Looks et les explorations. |
see_drill_overlay |
access_data |
Spécifique au modèle | Permet à l'utilisateur d'explorer en détail sans avoir à accéder à la page "Explorer" complète. |
embed_browse_spaces |
Aucune | À l'échelle de l'instance | Active le navigateur de contenu pour qu'un utilisateur puisse parcourir les dossiers d'une intégration. Tout utilisateur de l'intégration qui dispose de l'autorisation embed_browse_spaces peut accéder à 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 d'enregistrement du contenu. Pour afficher le contenu dans les dossiers, l'utilisateur doit également disposer des autorisations see_looks , see_user_dashboards et see_lookml_dashboards . |
embed_save_shared_space |
Aucune | À l'échelle de l'instance |
ADDED 21.4
Permet à l'utilisateur disposant de l'autorisation save_content d'accéder au dossier Partagé de l'organisation, le cas échéant, depuis la boîte de dialogue Enregistrer. Les utilisateurs disposant de l'autorisation save_content , mais pas de l'autorisation embed_save_shared_space , peuvent uniquement enregistrer du contenu 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 autoriser un utilisateur à enregistrer des éléments dans le dossier Partagé, il doit tout de même être autorisé à gérer les accès, modifier au dossier partagé. 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 les 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 à partir d'un tableau de bord intégré. |
Accès au modèle
Déterminez les modèles LookML auxquels l'utilisateur doit avoir accès. Il s'agit simplement d'une liste de noms de modèles.
Attributs utilisateur
Déterminez les attributs utilisateur que l'utilisateur doit avoir, 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 de leurs noms. L'ajout d'un utilisateur d'intégration signé à 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 de l'intégration signée disposant du même external_group_id
auront accès à un dossier partagé, nommé "Groupe", propre au groupe externe.
Rôles intégrés
Les paramètres permissions
et models
créent un rôle pour l'utilisateur de l'intégration. Ce rôle apparaît en tant que "Rôle intégré" sur la page Utilisateurs de la section Admin de Looker. 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 ajouté aux rôles déjà attribués aux groupes listés dans le paramètre group_ids
. Cela équivaut aux rôles standards, dans la mesure où 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
. Vous créez 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é héritera de la possibilité d'afficher et d'explorer les données sur model_one
, et 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 a le format suivant:
https://HOST/login/embed/INTÉGRER L'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é le transfert de port, tel que analytics.mycompany.com:9999
.
Intégrer une URL
L'URL d'intégration a été déterminée précédemment. Son format est le suivant:
/embed/looks/4
/embed/explore/my_model/my_explore
/embed/query-visualization/Query.client_id
/embed/dashboards/1
ou/embed/dashboards-legacy/1
/embed/dashboards/my_model::my_dashboard
ou/embed/dashboards-legacy/my_model::my_dashboard
Cela signifie que le format /embed//embed/
s'affichera dans votre URL finale. C'est exact.
Si vous utilisez des événements JavaScript intégrés, veillez à ajouter embed_domain
(le 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
embed_domain
est ajouté après l'URL d'intégration et avant tout paramètre. Ainsi, si vous aviez des paramètres existants, tels que nonce=626
, l'ajout de embed_domain
ressemblerait à ceci:
/embed/looks/4?nonce=626
/embed/looks/4?embed_domain=https://mywebsite.com?nonce=626
Si vous utilisez le SDK Embed, veillez à ajouter embed_domain
et à inclure 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 de déterminer que le SDK est présent et de bénéficier de fonctionnalités supplémentaires fournies par celui-ci. 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 permettent de spécifier les informations nécessaires pour l'intégration signée:
Paramètres | Valeur par défaut | Description | Type de données | Exemple |
---|---|---|---|---|
nonce |
Veuillez saisir une valeur | Toute chaîne aléatoire de votre choix, mais qui ne peut pas être répétée pendant une heure et doit comporter moins de 255 caractères.Cela empêche un pirate informatique de renvoyer l'URL d'un utilisateur légitime pour recueillir des informations qu'il ne devrait pas détenir. | Chaîne JSON | "22b1ee700ef3dc2f500fb7" |
time |
Veuillez saisir une valeur | Heure actuelle sous forme d'horodatage UNIX. | Integer | 1407876784 |
session_length |
Veuillez saisir une valeur | Nombre de secondes pendant lesquelles l'utilisateur doit rester connecté à Looker, compris entre 0 et 2 592 000 secondes (30 jours). | Integer | 86400 |
external_user_id |
Veuillez saisir une valeur | Identifiant de chaque utilisateur de l'application qui intègre Looker. Looker utilise external_user_id pour différencier les utilisateurs d'intégrations signées. Un ID unique doit donc être attribué à chaque utilisateur.Vous pouvez créer un external_user_id pour un utilisateur avec n'importe quelle chaîne, à condition qu'elle soit propre à 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'une seule external_user_id , ou session utilisateur, à la fois. Aucune modification ne peut être apportée aux autorisations ou aux 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, et de ne pas utiliser le même external_user_id pour un seul utilisateur disposant d'autorisations, de valeurs d'attributs utilisateur ou d'un accès au modèle différents.Si vous utilisez le même external_user_id pour plusieurs utilisateurs ou pour un même utilisateur avec plusieurs autorisations, attributs utilisateur ou ensembles de modèles, les données peuvent être visibles pour des utilisateurs qui n'y auraient pas accès autrement. |
Chaîne JSON | "user-4" |
permissions |
Veuillez saisir une valeur | Liste des autorisations que l'utilisateur doit avoir.Consultez la section Autorisations de cette page pour obtenir la liste des autorisations accordées. | Tableau de chaînes | [ "access_data", "see_looks" ] |
models |
Veuillez saisir une valeur | 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 auxquels l'utilisateur doit être membre, le cas échéant. Utilisez des ID de groupe plutôt que des noms de groupe. | Tableau de chaînes | ["4", "3"] |
external_group_id |
"" | Identifiant unique du groupe auquel l'utilisateur appartient dans l'application qui intègre Looker, si vous le souhaitez.Les utilisateurs autorisés à enregistrer du contenu et à partager un ID de groupe externe pourront enregistrer et modifier le 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 de l'intégration. Il n'existe aucun moyen de configurer des groupes d'utilisateurs d'incorporations externes depuis l'interface utilisateur de Looker. |
Chaîne JSON | "Accounting" |
user_attributes |
{} | Liste des attributs utilisateur que l'utilisateur doit avoir, 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 la langue de l'intégration. Par exemple, si vous incluez le paramètre user_attributes { "locale" : "fr_FR" } , l'intégration charge le français comme langue. |
Hachage de chaînes | { "vendor_id" : "17", "company" : "xactness" } |
access_filters |
Veuillez saisir une valeur | Dans Looker 3.10, ce paramètre a été supprimé, 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 ce champ n'est pas renseigné, first_name conservera la valeur de la dernière requête ou sera "Embed" (Intégrer) si aucun prénom n'a jamais été défini. |
Chaîne JSON | "Alice" |
last_name |
"" | Nom de famille de l'utilisateur. Si ce champ n'est pas renseigné, last_name conservera la valeur de la dernière requête ou sera "Embed" (Intégrer) si aucun nom de famille n'a été défini. |
Chaîne JSON | "Jones" |
user_timezone |
"" | Si vous avez activé les Fuseaux horaires spécifiques à l'utilisateur, vous pouvez définir la valeur de l'option Fuseau horaire du lecteur dans la liste déroulante Fuseau horaire du Look ou du tableau de bord intégré. Ce paramètre ne modifie pas directement le fuseau horaire dans lequel le contenu est affiché. L'utilisateur doit sélectionner un fuseau horaire dans la liste déroulante.Consultez les valeurs valides sur la page de documentation de référence Fuseau horaire des représentations vectorielles continues signées.Conseil de l'équipe Chat:Si vous souhaitez que votre contenu intégré utilise par défaut le fuseau horaire du spectateur, 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 |
Veuillez saisir une valeur | Si un utilisateur Looker normal 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) Il doit être déconnecté, puis reconnecté à l'aide des identifiants d'intégration signés. | Booléen (vrai ou faux) | true |
Signature
Pour générer la signature, procédez comme suit :
- Rassemblez les valeurs de paramètres suivantes 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 d'utilisateur externe
- Autorisations
- ajustables
- ID de groupe
- ID du groupe externe
- Attributs utilisateur
- Filtres d'accès (nécessite un espace réservé vide)
- Hôte, suivi de
- Mettre en forme toutes les valeurs autres que l'URL hôte et l'URL d'intégration au format JSON
- Concaténer les valeurs à l'aide de sauts de ligne (
\n
) - Signez la chaîne concaténée avec votre clé secrète d'intégration Looker en utilisant HMAC.
Encodage
La dernière étape consiste à encoder votre URL en URL.
Avant d'encoder l'URL, une URL d'intégration correctement formatée et utilisant tous les paramètres possibles peut se présenter comme suit:
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
Comme indiqué précédemment, il est normal que /embed//embed/
apparaisse dans votre URL.
Une fois l'URL encodée, elle doit se présenter comme suit:
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
Utiliser le point de terminaison de l'API Create Signed Embed Url
L'API Looker inclut le point de terminaison Create Signed Embed Url (Créer une URL d'intégration signée) 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 de l'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 être listé dans la liste d'autorisation de domaines Embed.
Vous pouvez également utiliser APIs Explorer pour générer une URL signée utilisant ce point de terminaison. Vous pouvez installer APIs Explorer sur votre instance Looker à partir de Looker Marketplace. 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 échouera. APIs Explorer 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 programme de validation d'URI intégré sur la page Intégrer de la section Administration de Looker. Bien que cette option ne vous indique pas si les données et les autorisations que vous envisagez ont été configurées correctement, elle peut vérifier que votre authentification fonctionne correctement.