L'intégration avec signature permet de présenter des styles intégrés, 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 plutôt 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 souhaitez lui accorder. Vous signerez ensuite l'URL avec une clé secrète fournie par Looker.
Pour l'incorporation publique, consultez la section Incorporation publique avec des balises iframe
de la page de documentation Partage public, importation et incorporation de présentations.
Avant que vous puissiez utiliser l'intégration avec signature dans votre instance Looker, un administrateur Looker doit activer l'intégration avec signature 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 avec signature.
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) utilisent par défaut une politique de 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ée sur différents domaines. L'authentification d'intégration sans cookie nécessite une configuration côté serveur. Pour obtenir des exemples de configuration, consultez la page de documentation sur l'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 est impossible d'essayer d'authentifier l'iframe intégrée entre les 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 la configuration DNS nécessaire afin d'utiliser un domaine personnalisé. Cela permettra à Looker de partager le même domaine que l'application intégrée et d'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 avec signature utilise le même domaine que votre instance Looker.
Contrôler la visibilité des clients 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 d'entreprises ou de groupes différents qui ne doivent pas avoir connaissance de l'existence de chacun. Dans ce cas, 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 multi-locataire. Dans un système fermé, le contenu est cloisonné pour empêcher les utilisateurs de différents groupes de connaître 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 des méthodes suivantes:
Vous pouvez générer une URL d'intégration signée à l'aide de l'option Obtenir l'URL d'intégration dans le menu à trois points du tableau de bord d'un tableau de bord ou dans le menu d'outils des actions d'exploration d'une présentation ou d'une exploration.
Utilisez le point de terminaison de l'API Looker Create Signed Embed Url, comme décrit plus loin dans ce document.
Utilisez le SDK d'ingestion Looker.
Codez l'URL d'intégration signée. Pour créer l'URL appropriée, vous devrez écrire du code afin de pouvoir correctement encoder l'URL avec votre clé secrète et 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 de Looker. Les sections suivantes expliquent les informations que vous devrez fournir à ces scripts, ainsi que la manière 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éez l'URL d'intégration signée.
Collecter les informations Looker nécessaires
Pour commencer à 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 la présentation, de l'exploration, 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 | 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 de l'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 de requête, récupérez la valeur Query.client_id de la visualisation de requête, puis copiez-la dans votre URL d'intégration.Query.client_id Vous pouvez utiliser l'UI Explorer de Looker pour créer une requête avec une visualisation compatible et copier la valeur Query.client_id à partir du paramètre qid= . Vous pouvez également 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 les 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 |
Ancien tableau de bord LookML | 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 l'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:
- 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'instance Looker dans son ensemble. 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 avec signature. Les autorisations qui ne figurent pas dans la liste suivante ne sont pas compatibles avec l'intégration avec signature:
Autorisation | Dépend de | Type | Définition |
---|---|---|---|
access_data |
Aucun | Spécifique au modèle | Permet à l'utilisateur d'accéder aux données (requis pour afficher des présentations, des tableaux de bord ou des explorations) |
see_lookml_dashboards |
access_data |
Spécifique au modèle | Permet à l'utilisateur de consulter les tableaux de bord LookML |
see_looks |
access_data |
Spécifique au modèle | Permet à 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 à partir d'une incorporation |
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 | Indispensable pour créer des calculs de table dans une exploration |
create_custom_fields |
explore |
À l'échelle de l'instance | AJOUTÉ 22.4 Nécessaire pour créer des champs personnalisés dans une exploration |
can_create_forecast |
explore |
À l'échelle de l'instance | AJOUTÉ LE 22.12 Permet aux utilisateurs de créer ou de modifier des prédictions dans les visualisations. |
save_content |
see_looks |
À l'échelle de l'instance | Permet à l'utilisateur d'apporter et d'enregistrer des modifications aux présentations et aux tableaux de bord |
send_outgoing_webhook |
see_looks |
Spécifique au modèle | Permet à l'utilisateur de planifier la diffusion 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 contenus 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 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 à l'utilisateur 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 |
Spécifique au modèle | Permet à l'utilisateur de planifier la diffusion de contenu Looker vers n'importe quel domaine de messagerie. Permet à l'utilisateur 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 vers les services tiers intégrés à Looker via Action Hub de Looker. 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 cartes du tableau de bord afin de recevoir des notifications lorsque des conditions spécifiées sont remplies ou dépassées. Les utilisateurs peuvent modifier, dupliquer et supprimer leurs propres alertes, ainsi que celles 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 |
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 des requêtes |
clear_cache_refresh |
access_data |
Spécifique au modèle | AJOUTÉ 21.14 Les utilisateurs peuvent vider le cache et actualiser les tableaux de bord intégrés, les anciens tableaux de bord, les cartes de tableau de bord, les présentations et les explorations. |
see_drill_overlay |
access_data |
Spécifique au modèle | Permet à l'utilisateur d'effectuer des analyses sans avoir à accéder à la page "Explorer" complète. |
embed_browse_spaces |
Aucun | À l'échelle de l'instance | Active le navigateur de contenu afin qu'un utilisateur puisse parcourir les dossiers à partir d'un élément intégré. Tout utilisateur d'intégration auquel l'autorisation embed_browse_spaces est accordée dispose d'un dossier d'intégration personnel et du 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 . |
embed_save_shared_space |
Aucun | À l'échelle de l'instance |
AJOUTÉ 21.4
Permet à l'utilisateur disposant également 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 , ne pourront enregistrer le contenu que dans leur dossier d'intégration personnel.L'autorisation embed_save_shared_space ne remplace pas les autorisations d'accès aux contenus. Par exemple, pour que l'utilisateur puisse enregistrer des fichiers dans le dossier Partagé, il doit toujours disposer des autorisations Gérer l'accès, Modifier pour le 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'autorisation 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 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 dont l'utilisateur doit disposer, le cas échéant. Vous aurez besoin du nom de l'attribut utilisateur dans 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 plutôt que des noms de groupe. Ajouter un utilisateur intégré connecté à un groupe Looker vous permet de gérer son accès aux dossiers Looker. Les utilisateurs intégrés connectés 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 connectés disposant du même external_group_id
auront accès à un dossier partagé, nommé "Group", 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 d'intégration. Ce rôle apparaît sous la forme de "Rôle intégré" sur la page Utilisateurs de la section Administration 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 cumulatif avec les 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 de Looker sont cumulables.
Par exemple, imaginons que vous disposiez d'un groupe existant dans Looker avec l'ID de groupe 1
. 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é 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 sous la forme suivante:
https://HOST/login/embed/URL D'INTÉGRATION?PARAMÈTRES&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, 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 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 normal.
Si vous utilisez des événements JavaScript intégrés, veillez à ajouter un embed_domain
(le domaine dans lequel l'iFrame est utilisée) à la fin de l'URL d'intégration, comme suit:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com
embed_domain
est ajouté après l'URL d'intégration et avant tous les paramètres. Par conséquent, si vous disposez de paramètres existants, tels que nonce=626
, l'ajout de embed_domain
se présente comme suit:
/embed/looks/4?nonce=626
/embed/looks/4?embed_domain=https://mywebsite.com?nonce=626
Si vous utilisez le SDK d'intégration, veillez à ajouter embed_domain
et 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 la présence du SDK et de profiter des fonctionnalités supplémentaires qu'il fournit. 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ètre | Valeur par défaut | Description | Type de données | Exemple |
---|---|---|---|---|
nonce |
Valeur requise | Une chaîne aléatoire de votre choix, mais elle ne doit pas être répétée dans un délai d'une heure et 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 qu'il ne devrait pas avoir. | Chaîne JSON | "22b1ee700ef3dc2f500fb7" |
time |
Valeur requise | Heure actuelle sous forme d'horodatage UNIX. | Integer | 1407876784 |
session_length |
Valeur requise | 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 | Identifiant de chaque utilisateur dans l'application qui intègre Looker. Looker utilise external_user_id pour différencier les utilisateurs intégrés connectés. Par conséquent, chaque utilisateur doit se voir attribuer un ID unique.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'un seul external_user_id , ou session utilisateur, à la fois. Vous ne pouvez pas modifier les autorisations ni 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 pour 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'attribut utilisateur ou d'accès au modèle différents.L'utilisation de la même external_user_id pour plusieurs utilisateurs ou pour le même utilisateur avec plusieurs autorisations, attributs utilisateur ou ensembles de modèles peut entraîner la visibilité des données par des utilisateurs qui n'y auraient pas accès autrement. |
Chaîne JSON | "user-4" |
permissions |
Valeur requise | Liste des autorisations dont l'utilisateur doit disposer.Consultez la section Autorisations de cette page pour obtenir la liste des autorisations autorisées. | 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 des ID de groupe au lieu de 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 peuvent enregistrer et modifier du contenu dans un dossier Looker partagé appelé "Group". 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 d'intégration externes depuis l'UI Looker. |
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 de chaînes | { "vendor_id" : "17", "company" : "xactness" } |
access_filters |
Valeur requise | 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 vous ne saisissez rien, first_name conservera la valeur de la dernière requête ou sera défini sur "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 vous ne saisissez rien, last_name conservera la valeur de la dernière requête ou sera défini sur "Embed" (Intégrer) si aucun nom de famille n'a jamais été défini. |
Chaîne JSON | "Jones" |
user_timezone |
"" | Si vous avez activé les fuseaux horaires spécifiques à l'utilisateur, définit la valeur de l'option Fuseau horaire du lecteur dans le menu déroulant Fuseau horaire de la présentation ou du tableau de bord intégré. Ce paramètre ne modifie pas directement le fuseau horaire dans lequel le contenu s'affiche. L'utilisateur doit sélectionner un fuseau horaire dans le menu déroulant.Pour connaître les valeurs valides, consultez la page de documentation Fuseau horaire de référence pour l'intégration signée.Conseil de l'équipe Chat:Si vous souhaitez que le fuseau horaire du lecteur soit utilisé 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 normal est déjà connecté à Looker et qu'il affiche un élément intégré signé, vous pouvez choisir: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 |
Signature
Looker utilise la signature pour vérifier que le 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 refusée.
Par conséquent, la signature de 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 en possession de la clé secrète d'intégration.
Pour générer la signature, procédez comme suit :
- Rassemblez les valeurs de paramètre suivantes dans l'ordre suivant :
- Host, 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
- ID de groupe
- ID de groupe externe
- Attributs utilisateur
- Filtres d'accès (nécessite un espace réservé vide)
- Host, suivi de
- Mettre en forme toutes les valeurs autres que l'hôte et l'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 en URL.
Avant d'encoder l'URL, une URL d'intégration correctement formatée qui utilise 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, /embed//embed/
peut apparaître dans votre URL.
Une fois l'URL encodée, elle se présente 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 reçoit 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 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 l'outil de validation de l'URI d'intégration sur la page Intégration de la section Administration de Looker. Cette option ne vous indique pas si les données et les autorisations que vous envisagez ont été configurées correctement, mais elle peut vérifier que votre authentification fonctionne correctement.