Mit signierten Einbettungen können Sie Ihren Benutzern private eingebettete Looks, Visualisierungen, Explores, Dashboards oder LookML-Dashboards präsentieren, ohne dass sie eine separate Looker-Anmeldung benötigen. Stattdessen werden Nutzer über Ihre eigene Anwendung authentifiziert.
Beim signierten Einbetten wird eine spezielle Looker-URL erstellt, die Sie in einem iFrame verwenden. Die URL enthält die Informationen, die Sie teilen möchten, die ID des Nutzers in Ihrem System und die Berechtigungen, die der Nutzer haben soll. Anschließend signieren Sie die URL mit einem geheimen Schlüssel von Looker.
Informationen zur öffentlichen Einbettung finden Sie im Abschnitt Öffentliche Einbettung mit iframe
-Tags auf der Dokumentationsseite Öffentliche Freigabe, Import und Einbettung von Looks.
Bevor Sie die signierte Einbettung in Ihrer Looker-Instanz verwenden können, muss ein Looker-Administrator die signierte Einbettung im Admin-Steuerfeld von Looker aktivieren und einen geheimen Einbettungsschlüssel erstellen. Eine Anleitung dazu finden Sie auf der Dokumentationsseite Erste Schritte beim Einbetten – Signierte Einbettung aktivieren.
Richtiges Hosting für signierte Einbettungen
Einige Browser – z. B. Safari oder Browser mit installierten Erweiterungen, die Anzeigen oder Tracking-Cookies blockieren – verwenden standardmäßig eine Cookie-Richtlinie, die Drittanbieter-Cookies blockiert. Wenn die Funktion Einbetten ohne Cookies aktiviert ist, können Browser, die Drittanbieter-Cookies blockieren, Nutzer im eingebetteten iFrame über verschiedene Domains hinweg authentifizieren. Für die Authentifizierung ohne Cookies ist eine serverseitige Konfiguration erforderlich. Beispiele für die Einrichtung finden Sie auf der Dokumentationsseite Einbetten ohne Cookies.
Wenn die Funktion Einbetten ohne Cookies nicht aktiviert ist, verwendet Looker Cookies zur Nutzerauthentifizierung. In diesem Fall ist es in Browsern, die Cookies von Drittanbietern blockieren, nicht möglich, den eingebetteten iFrame domainübergreifend zu authentifizieren, es sei denn, der Nutzer ändert die Cookie-Datenschutzeinstellungen seines Browsers. Wenn Sie beispielsweise Informationen in https://mycompany.com
einbetten möchten, müssen Sie dafür sorgen, dass Looker dieselbe Domain verwendet, z. B. https://analytics.mycompany.com
. Wenn Ihre Instanz in Looker gehostet wird, wenden Sie sich an den Looker-Support, um die erforderliche DNS-Konfiguration einzurichten, um die Nutzung benutzerdefinierter Domains zu aktivieren. Dadurch kann Looker dieselbe Domain wie die Einbettungsanwendung teilen und Erstanbieter-Cookies verwenden, die standardmäßig in allen Browsern akzeptiert werden.
Wenn Sie eine vom Kunden gehostete Looker-Instanz haben, achten Sie darauf, dass die Anwendung, die die signierte Einbettung verwendet, dieselbe Domain wie Ihre Looker-Instanz verwendet.
Sichtbarkeit von Clients mit einem geschlossenen System steuern
Es ist üblich, dass Looker-Benutzer in einer signierten Einbettungskonfiguration ihren eigenen Kunden Daten präsentieren, während Kunden aus verschiedenen Unternehmen oder Gruppen haben, die nichts voneinander wissen sollten. In diesem Szenario empfehlen wir zum Schutz der privaten Informationen Ihrer Kunden dringend, Looker als geschlossenes System zu konfigurieren, das auch als mehrinstanzenfähige Installation bezeichnet wird. In einem geschlossenen System sind Inhalte isoliert, um zu verhindern, dass Nutzer aus verschiedenen Gruppen voneinander erfahren. Aus diesem Grund empfehlen wir, die Option Closed System zu aktivieren, bevor Sie externen Nutzern Zugriff auf Ihre Instanz gewähren.
Weitere Informationen finden Sie auf den Dokumentationsseiten Ein System mit Zugriffsebenen entwickeln und konfigurieren und Best Practices für die Sicherheit von eingebetteten Analysen.
Signierte Einbettungs-URL generieren
Es gibt mehrere Möglichkeiten, die signierte Einbettungs-URL zu generieren. Sie haben folgende Möglichkeiten:
Sie können eine signierte Einbettungs-URL generieren, indem Sie im Dashboard-Menü mit den drei Punkten eines Dashboards oder über das Zahnradmenü für Explore-Aktionen eines Looks oder Explores die Option Einbettungs-URL abrufen verwenden.
Verwenden Sie den Endpunkt zum Erstellen einer signierten Einbettungs-URL der Looker API, wie weiter unten in diesem Dokument beschrieben.
Verwenden Sie das Looker Embed SDK.
Signierte Einbettungs-URL codieren Zum Erstellen der richtigen URL müssen Sie Code schreiben, damit Sie die URL ordnungsgemäß mit Ihrem Geheimschlüssel codieren und weitere sicherheitsrelevante Elemente generieren können. Im GitHub-Repository zum Einbetten von Beispielen finden Sie mehrere Beispielskripts von Looker. In den folgenden Abschnitten werden die Informationen erläutert, die Sie in diesen Skripts angeben müssen. Außerdem erfahren Sie, wie Sie eine signierte Einbettungs-URL ohne Skript erstellen.
Signierte Einbettungs-URL manuell codieren
Wenn Sie die signierte Einbettungs-URL codieren möchten, erheben Sie zuerst die erforderlichen Looker-Informationen und erstellen Sie dann die signierte Einbettungs-URL.
Erforderliche Looker-Informationen erfassen
Wenn Sie Ihre URL erstellen möchten, müssen Sie zunächst alle erforderlichen Informationen ermitteln. Folgendes wird benötigt:
URL einbetten
Rufen Sie die URL des Looks, Explores, der Abfragevisualisierung oder des Dashboards ab, den bzw. das Sie einbetten möchten. Entfernen Sie dann die Domain und platzieren Sie /embed
vor dem Pfad:
Element | Normales URL-Muster | URL einbetten |
---|---|---|
Look | https://instance_name.looker.com/looks/4 |
/embed/looks/4 |
Erkunden | https://instance_name.looker.com/explore/my_model/my_explore |
/embed/explore/my_model/my_explore |
Abfragevisualisierung | https://instance_name.looker.com/explore/my_model/my_explore?qid=1234567890abcdefghij12 Die Query.client_id sind die 22 alphanumerischen Zeichen, die in der Explore-URL auf den Parameter qid= folgen. Der Wert Query.client_id ist ein eindeutiger String, der die Abfrage und die Visualisierungseinstellungen darstellt.Um eine Abfragevisualisierung einzubetten, rufen Sie den Query.client_id -Wert der Abfragevisualisierung ab und kopieren Sie Query.client_id in Ihre Einbettungs-URL.Sie können die Explore-UI von Looker verwenden, um eine Abfrage mit einer unterstützten Visualisierung zu erstellen und den Query.client_id -Wert aus dem qid= -Parameter zu kopieren. Alternativ können Sie Query.client_id mit der Looker API abrufen, beispielsweise mithilfe der Get Query -Methode. |
/embed/query-visualization/Query.client_id |
Benutzerdefiniertes Dashboard | https://instance_name.looker.com/dashboards/1 Geben Sie alle Dashboardfilterwerte an. Wenn Sie Filterwerte ausblenden, muss der Parameter hide_filter in der Dashboard-URL enthalten sein. |
|
Benutzerdefiniertes Legacy-Dashboard | https://instance_name.looker.com/dashboards-legacy/1 |
/embed/dashboards-legacy/1 |
LookML-Dashboard | https://instance_name.looker.com/dashboards/my_model::my_dashboard |
/embed/dashboards/my_model::my_dashboard |
Legacy-LookML-Dashboard | https://instance_name.looker.com/dashboards-legacy/my_model::my_dashboard |
/embed/dashboards-legacy/my_model::my_dashboard |
Eingebetteter Inhalt spiegelt immer die Produktionsversion des Inhalts wider. Alle im Entwicklungsmodus vorgenommenen Änderungen, die sich auf Inhalte auswirken und nicht für die Produktion bereitgestellt wurden, werden nicht in einer Einbettung angezeigt.
Berechtigungen
Mit einem Berechtigungssatz wird festgelegt, was ein Nutzer oder eine Gruppe tun kann. Es gibt zwei Möglichkeiten, Berechtigungen anzuwenden:
- Modellspezifisch: Diese Art von Berechtigung wird nur auf Modellsätze angewendet, die zur selben Rolle gehören.
- Instanzweit:Diese Art von Berechtigung gilt für die gesamte Looker-Instanz. Embed-Benutzer mit instanzweiten Berechtigungen können bestimmte Funktionen in der gesamten Looker-Instanz ausführen, aber nicht auf Inhalte zugreifen, die auf Modellen basieren, die nicht im Modellsatz ihrer Rolle enthalten sind.
Legen Sie die Berechtigungen fest, die der Nutzer haben soll. In der folgenden Liste sind alle verfügbaren Berechtigungen für das signierte Einbetten aufgeführt. Berechtigungen, die nicht in der folgenden Liste aufgeführt sind, werden für das signierte Einbetten nicht unterstützt:
Berechtigung | Abhängig von | Typ | Definition |
---|---|---|---|
access_data |
Keine | Modellspezifisch | Ermöglicht Benutzern den Zugriff auf Daten (erforderlich zum Anzeigen von Looks, Dashboards oder Explores) |
see_lookml_dashboards |
access_data |
Modellspezifisch | Nutzer können LookML-Dashboards anzeigen |
see_looks |
access_data |
Modellspezifisch | Ermöglicht die Anzeige von Looks für den Nutzer |
see_user_dashboards |
see_looks |
Modellspezifisch | Ermöglicht es Nutzern, benutzerdefinierte Dashboards anzusehen und Ordner aus einer Einbettung zu durchsuchen |
explore |
see_looks |
Modellspezifisch | Nutzer können sich Erkundungsseiten anzeigen lassen. |
create_table_calculations |
explore |
Instanzweit | Muss Tabellenkalkulationen in einem Explore erstellen |
create_custom_fields |
explore |
Instanzweit | HINZUGEFÜGT 22.4 Erforderlich zum Erstellen von benutzerdefinierten Feldern in einem Explore |
can_create_forecast |
explore |
Instanzweit | HINZUGEFÜGT 22.12 Ermöglicht Nutzern das Erstellen oder Bearbeiten von Prognosen in Visualisierungen. |
save_content |
see_looks |
Instanzweit | Ermöglicht es Nutzern, Änderungen an Looks und Dashboards vorzunehmen und zu speichern |
send_outgoing_webhook |
see_looks |
Modellspezifisch | Ermöglicht es Benutzern, Looker-Inhaltslieferungen an einen beliebigen Webhook zu planen |
send_to_s3 |
see_looks |
Modellspezifisch | Ermöglicht es Benutzern, Looker-Inhaltslieferungen an einen Amazon S3-Datenbehälter zu planen |
send_to_sftp |
see_looks |
Modellspezifisch | Ermöglicht es Benutzern, Looker-Inhaltslieferungen an einen SFTP-Server zu planen |
schedule_look_emails |
see_looks |
Modellspezifisch | Damit können Nutzer Looker-Inhaltsübermittlungen für ihre eigene E-Mail-Adresse (wenn mit einem Nutzerattribut namens „email“) oder an eine E-Mail-Adresse, die innerhalb der Einschränkungen der Zulassungsliste für E-Mail-Domains liegt, planen. Nutzer mit der Berechtigung „create_alerts “ können Benachrichtigungen an eine E-Mail-Adresse senden, die die Einschränkungen in der Zulassungsliste für E-Mail-Domains enthält. |
schedule_external_look_emails |
schedule_look_emails |
Modellspezifisch | Hiermit können Nutzer die Inhaltsübermittlung von Looker an eine beliebige E-Mail-Domain planen. Ermöglicht Nutzern mit der Berechtigung create_alerts das Senden von Warnmeldungen an eine beliebige E-Mail-Domain. |
send_to_integration |
see_looks |
Modellspezifisch | Ermöglicht es Benutzern, über den Looker Action Hub Looker-Inhalte an in Looker integrierte Drittanbieter-Dienste zu liefern. Diese Berechtigung bezieht sich nicht auf Datenaktionen. |
create_alerts |
see_looks |
Instanzweit | Der Nutzer kann Warnungen zu Dashboardkacheln erstellen, um Benachrichtigungen zu erhalten, wenn bestimmte Bedingungen erfüllt oder überschritten werden. Nutzer können sowohl ihre eigenen Benachrichtigungen als auch die öffentlichen Benachrichtigungen anderer Nutzer bearbeiten, duplizieren und löschen. Wenn der Slack-Workspace des Nutzers nicht mit der Looker-Instanz verbunden ist, kann der Nutzer keine Warnungen erstellen, die Benachrichtigungen an Slack senden. |
download_with_limit |
see_looks |
Instanzweit | Ermöglicht einem Nutzer das Herunterladen der Ergebnisse einer Abfrage mit einem angewendeten Limit |
download_without_limit |
see_looks |
Instanzweit | Der Nutzer kann die Ergebnisse einer Abfrage ohne Limit herunterladen. |
see_sql |
see_looks |
Modellspezifisch | Ermöglicht dem Nutzer die Anzeige des SQL-Codes für Abfragen und aller SQL-Fehler, die sich aus der Ausführung von Abfragen ergeben |
clear_cache_refresh |
access_data |
Modellspezifisch | ADDED 21.14 Nutzer können den Cache leeren und eingebettete Dashboards, Legacy-Dashboards, Dashboard-Tiles, Looks und Explores aktualisieren. |
see_drill_overlay |
access_data |
Modellspezifisch | Ermöglicht es Benutzern, Drilldown durchzuführen, ohne die vollständige Explore-Seite aufrufen zu müssen. |
embed_browse_spaces |
Keine | Instanzweit | Aktiviert den Inhaltsbrowser, sodass Nutzer Ordner aus einer Einbettung durchsuchen können. Jeder Einbettungsnutzer mit der Berechtigung embed_browse_spaces erhält Zugriff auf einen persönlichen Einbettungsordner und auf den Ordner Freigegeben deiner Organisation, falls vorhanden. Die Berechtigung „embed_browse_spaces “ wird Nutzern mit der Berechtigung „save_content “ empfohlen, damit sie Ordner ansehen können, wenn sie auswählen, wo Inhalte gespeichert werden sollen. Um Inhalte in Ordnern zu sehen, benötigt der Nutzer außerdem die Berechtigungen see_looks , see_user_dashboards und see_lookml_dashboards . |
embed_save_shared_space |
Keine | Instanzweit |
ADDED 21.4
Nutzer mit der Berechtigung save_content können über das Dialogfeld Speichern den Ordner Freigegeben der Organisation aufrufen, falls vorhanden. Nutzer, die die Berechtigung save_content , aber nicht die Berechtigung embed_save_shared_space haben, können Inhalte nur in ihrem persönlichen Einbettungsordner speichern.Die Berechtigung embed_save_shared_space überschreibt nicht Zugriffsberechtigungen für Inhalte. Damit Nutzer beispielsweise Dateien im Ordner Freigegeben speichern können, benötigen sie für den Ordner Freigegeben weiterhin die Zugriffsberechtigung Zugriff verwalten, Bearbeiten. Auch das Fehlen der Berechtigung embed_save_shared_space hindert Nutzer mit der Berechtigung save_content und der Zugriffsberechtigung Zugriff verwalten, Bearbeiten auf den Ordner Freigegeben nicht daran, Inhalte dort zu speichern, wenn es eine andere Möglichkeit gibt, den Ordner Freigegeben aufzurufen, z. B. mit der Option Von hier aus ansehen in einem eingebetteten Dashboard. |
Modellzugriff
Legen Sie fest, auf welche LookML-Modelle der Nutzer Zugriff haben sollte. Dies ist einfach eine Liste von Modellnamen.
Nutzerattribute
Ermitteln Sie, welche Nutzerattribute der Nutzer gegebenenfalls haben sollte. Sie benötigen den Namen des Benutzerattributs aus Looker sowie den Wert, den der Benutzer für dieses Attribut haben sollte.
Gruppen
Legen Sie fest, welchen Gruppen der Nutzer angehören soll, falls zutreffend. Sie benötigen die Gruppen-IDs, nicht die Gruppennamen. Wenn Sie einer Looker-Gruppe einen signierten Einbettungsnutzer hinzufügen, können Sie den Zugriff dieses Nutzers auf Looker-Ordner verwalten. Nutzer mit signierten Einbettungen haben Zugriff auf alle Ordner, die für Mitglieder ihrer Looker-Gruppen freigegeben sind.
Sie können auch den Parameter external_group_id
verwenden, um eine Gruppe außerhalb der regulären Looker-Gruppen zu erstellen. In diesem Fall haben signierte Einbettungsnutzer mit derselben external_group_id
Zugriff auf einen freigegebenen Ordner namens „Gruppe“, der für diese externe Gruppe eindeutig ist.
Eingebettete Rollen
Mit den Parametern permissions
und models
wird eine Rolle für den eingebetteten Nutzer erstellt. Diese Rolle wird im Looker-Bereich Admin auf der Seite Nutzer als „Eingebettete Rolle“ angezeigt. Wenn die Parameter permissions
, models
und group_ids
in der Einbettungs-URL angegeben sind, kann die eingebettete Rolle allen Rollen, die den im Parameter group_ids
aufgeführten Gruppen bereits zugewiesen sind, hinzugefügt werden. Dies entspricht den Standardrollen, da alle Rollen in Looker additiv sind.
Angenommen, Sie haben in Looker bereits eine Gruppe mit der Gruppen-ID 1
, die bereits die Berechtigung explore
für ein Modell mit dem Namen model_one
hat und Sie eine Einbettungs-URL mit den folgenden Parametern erstellen:
group_ids
=["1"]
permissions
=["access_data","see_looks"]
models
=["model_two"]
In diesem Fall übernimmt der eingebettete Nutzer die Berechtigung, die Daten in model_one
anzusehen und zu untersuchen. Die mit den vorherigen Parametern erstellte Einbettungsrolle gewährt ebenfalls die Berechtigung zum Ansehen der Daten in model_two
.
Einbettungs-URL erstellen
Eine signierte Einbettungs-URL hat folgendes Format:
https://HOSThttps://EINBETTEN URLhttps://PARAMETERhttps://SIGNATUR
Host
Der Host ist der Standort, an dem Ihre Looker-Instanz gehostet wird. Beispiel: analytics.mycompany.com
. Geben Sie unbedingt die Portnummer an, wenn Sie die Portweiterleitung nicht aktiviert haben, z. B. analytics.mycompany.com:9999
.
URL einbetten
Die Einbettungs-URL wurde bereits festgelegt. Das Format sieht etwa so aus:
/embed/looks/4
/embed/explore/my_model/my_explore
/embed/query-visualization/Query.client_id
/embed/dashboards/1
oder/embed/dashboards-legacy/1
/embed/dashboards/my_model::my_dashboard
oder/embed/dashboards-legacy/my_model::my_dashboard
Das bedeutet, dass das Muster /embed//embed/
in der finalen URL angezeigt wird. Das ist richtig.
Wenn du eingebettete JavaScript-Ereignisse verwendest, musst du am Ende der Einbettungs-URL eine embed_domain
(die Domain, in der der iFrame verwendet wird) hinzufügen:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com
embed_domain
wird nach der Einbettungs-URL und vor allen Parametern eingefügt. Wenn Sie also bereits Parameter wie nonce=626
haben, würde das Hinzufügen von embed_domain
so aussehen:
/embed/looks/4?nonce=626
/embed/looks/4?embed_domain=https://mywebsite.com?nonce=626
Wenn du das Embed SDK verwendest, musst du embed_domain
und sdk=2
am Ende der Einbettungs-URL hinzufügen. Das sieht dann so aus:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com&sdk=2
Anhand des sdk=2
-Parameters kann Looker erkennen, dass das SDK vorhanden ist, und zusätzliche Funktionen des SDK nutzen. Das SDK kann diesen Parameter nicht selbst hinzufügen, da er Teil der signierten URL ist.
Parameter
Mit den folgenden URL-Parametern werden die erforderlichen Informationen für die signierte Einbettung angegeben:
Parameter | Standardwert | Beschreibung | Datentyp | Beispiel |
---|---|---|---|---|
nonce |
Wert erforderlich | Jeder beliebige String. Er darf jedoch nicht innerhalb einer Stunde wiederholt werden und muss weniger als 255 Zeichen enthalten.Dadurch wird verhindert, dass Angreifer die URL eines legitimen Nutzers noch einmal senden, um Informationen zu erhalten, die er nicht haben sollte. | JSON-String | "22b1ee700ef3dc2f500fb7" |
time |
Wert erforderlich | Die aktuelle Zeit als UNIX-Zeitstempel. | Integer | 1407876784 |
session_length |
Wert erforderlich | Die Anzahl der Sekunden, die der Nutzer bei Looker angemeldet bleiben soll, zwischen 0 und 2.592.000 Sekunden (30 Tage). | Integer | 86400 |
external_user_id |
Wert erforderlich | Eine Kennung für jeden Nutzer in der Anwendung, in die Looker eingebettet ist. Looker verwendet external_user_id , um signierte Nutzer von eingebetteten Inhalten zu unterscheiden. Daher muss jedem Nutzer eine eindeutige ID zugewiesen werden.Sie können ein external_user_id -Objekt mit einem beliebigen String für einen Nutzer erstellen, solange er für diesen Nutzer eindeutig ist. Jeder ID ist eine Reihe von Berechtigungen, Nutzerattributen und Modellen zugeordnet. Ein einzelner Browser unterstützt jeweils nur eine external_user_id -Nutzersitzung. Während der Sitzung können die Berechtigungen oder Attribute eines Nutzers nicht geändert werden.Aus Sicherheitsgründen solltest du darauf achten, dass du nicht dieselbe external_user_id in verschiedenen Einbettungssitzungen für verschiedene interaktive Nutzer verwendest. Außerdem solltest du nicht dieselbe external_user_id für einen einzelnen Nutzer mit unterschiedlichen Berechtigungen, Nutzerattributwerten oder Modellzugriff verwenden.Wenn Sie dieselbe external_user_id für mehrere Nutzer oder denselben Nutzer mit mehreren Berechtigungen, Nutzerattributen oder Modellsätzen verwenden, können Daten auch für Nutzer sichtbar sein, die sonst keinen Zugriff darauf hätten. |
JSON-String | "user-4" |
permissions |
Wert erforderlich | Die Liste der Berechtigungen, die der Nutzer haben sollte.Eine Liste der zulässigen Berechtigungen finden Sie auf dieser Seite im Abschnitt Berechtigungen. | Stringarray | [ "access_data", "see_looks" ] |
models |
Wert erforderlich | Die Liste der Modellnamen, auf die der Nutzer Zugriff haben soll. | Stringarray | [ "model_one", "model_two" ] |
group_ids |
[] | Die Liste der Looker-Gruppen, in denen der Nutzer Mitglied sein sollte, falls vorhanden. Verwenden Sie Gruppen-IDs anstelle von Gruppennamen. | Stringarray | ["4", "3"] |
external_group_id |
"" | Gegebenenfalls eine eindeutige Kennung für die Gruppe, der der Nutzer in der Anwendung angehört, in die Looker eingebettet ist.Nutzer, die berechtigt sind, Inhalte zu speichern und eine externe Gruppen-ID freizugeben, können Inhalte in einem freigegebenen Looker-Ordner namens „Gruppe“ speichern und bearbeiten. | JSON-String | "Accounting" |
user_attributes |
{} | Die Liste der Nutzerattribute, die der Nutzer haben sollte, falls vorhanden. Enthält eine Liste mit Nutzerattributnamen, gefolgt vom Nutzerattributwert.Wenn Ihr LookML-Modell lokalisiert ist, können Sie mithilfe des Nutzerattributs locale in der Einbettungs-URL eine Sprache für die Einbettung angeben. Wenn beispielsweise der Parameter user_attributes { "locale" : "fr_FR" } eingefügt wird, würde die Einbettung dazu führen, dass Französisch als Sprache geladen wird. |
Hash von Strings | { "vendor_id" : "17", "company" : "xactness" } |
access_filters |
Wert erforderlich | In Looker 3.10 wurde dieser Parameter entfernt, ist aber weiterhin in der URL erforderlich. Verwenden Sie access_filters mit einem leeren Platzhalter, z. B. access_filters={} . |
Leerer Platzhalter | {} |
first_name |
"" | Der Vorname des Nutzers. Wenn das Feld leer ist, behält first_name den Wert aus der letzten Anfrage bei oder „Embed“ (Einbetten), wenn noch kein Vorname festgelegt wurde. |
JSON-String | "Alice" |
last_name |
"" | Der Nachname des Nutzers. Wenn das Feld leer gelassen wird, behält last_name den Wert aus der letzten Anfrage bei oder „Embed“ (Einbetten), wenn noch kein Nachname festgelegt wurde. |
JSON-String | "Jones" |
user_timezone |
"" | Wenn Sie nutzerspezifische Zeitzonen aktiviert haben, wird der Wert für die Option Zeitzone des Nutzers im Drop-down-Menü Zeitzone des eingebetteten Looks oder Dashboards festgelegt. Durch diesen Parameter wird die Zeitzone, in der die Inhalte angezeigt werden, nicht direkt geändert. Der Nutzer muss eine Zeitzone aus dem Drop-down-Menü auswählen.Gültige Werte finden Sie auf der Dokumentationsseite Referenz zur Zeitzone für signierte Einbettungen.Tipp für das Chat-Team: Wenn Sie möchten, dass für Ihre eingebetteten Inhalte standardmäßig die Zeitzone des Zuschauers verwendet wird, haben Sie folgende Möglichkeiten:?query_timezone=user_timezone hinzu. Beispiel:/embed/dashboards/1?query_timezone=user_timezone |
JSON-String oder Null | "US/Pacific" - oder -null |
force_logout_login |
Wert erforderlich | Wenn ein normaler Looker-Benutzer bereits bei Looker angemeldet ist und ein signiertes eingebettetes Element aufruft, können Sie zwischen folgenden Optionen wählen:1) Er sollte das Element mit seinen aktuellen Anmeldedaten aufrufen.oder2) Sie müssen abgemeldet und mit den Anmeldedaten für die Einbettung wieder angemeldet werden. | Boolesch (wahr oder falsch) | true |
Unterschrift
Gehen Sie wie folgt vor, um die Signatur zu generieren:
- Erfassen Sie die folgenden Parameterwerte in dieser Reihenfolge:
- Host, gefolgt von
login/embed/
(z. B.analytics.mycompany.com/login/embed/
) - URL einbetten
- Nonce
- Aktuelle Uhrzeit
- Sitzungsdauer
- Externe Nutzer-ID
- Berechtigungen
- Modelle
- Gruppen-IDs
- ID der externen Gruppe
- Nutzerattribute
- Zugriffsfilter (leerer Platzhalter erforderlich)
- Host, gefolgt von
- Alle Werte außer „Host“ und „URL einbetten“ als JSON formatieren
- Werte mit Zeilenumbrüchen verketten (
\n
) - HMAC signiert den verketteten String mit Ihrem geheimen Looker-Einbettungsschlüssel
Codierung
Im letzten Schritt muss Ihre URL URL-codiert werden.
Bevor du die URL codierst, könnte eine korrekt formatierte Einbettungs-URL mit allen möglichen Parametern so aussehen:
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
Wie bereits erwähnt, ist es korrekt, dass /embed//embed/
in Ihrer URL erscheint.
Nachdem Sie die URL codiert haben, sieht sie so aus:
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
API-Endpunkt „Signierte Embed Url erstellen“ verwenden
Die Looker API enthält den Endpunkt Signierte Einbettungs-URL erstellen. Dieser verwendet eine Reihe signierter Einbettungsparameter, die die URL des einzubettenden Inhalts enthält, und gibt eine vollständige, codierte, kryptografisch signierte URL zurück.
Damit dieser API-Endpunkt auf einem Webserver verwendet werden kann, muss sich der Webserver mit Administratorberechtigungen bei der Looker API authentifizieren können. Die Webserverdomain muss auch auf der Zulassungsliste für eingebettete Domains aufgeführt sein.
Sie können auch den API Explorer verwenden, um eine signierte URL zu generieren, die diesen Endpunkt verwendet. Sie können den API Explorer über den Looker Marketplace auf Ihrer Looker-Instanz installieren oder eine öffentliche Version im Looker-Entwicklerportal aufrufen. Nach der Erstellung muss die signierte URL genau kopiert werden und kann nur einmal verwendet werden. Andernfalls schlägt sie fehl. Der API Explorer ist auch nützlich, um eine signierte URL zu generieren und sie zur Fehlerbehebung mit einer manuell erstellten signierten URL zu vergleichen.
Weitere Informationen zur Looker API finden Sie auf der Dokumentationsseite Erste Schritte mit der Looker API.
Einbettungs-URL testen
Um die finale URL zu testen, fügen Sie sie im Looker-Bereich Admin auf der Seite Einbetten in das Feld URI-Validierung einbetten ein. Mit dieser Option lässt sich zwar nicht feststellen, ob die von Ihnen vorgesehenen Daten und Berechtigungen korrekt eingerichtet wurden, können aber überprüfen, ob Ihre Authentifizierung ordnungsgemäß funktioniert.