Mit der signierten Einbettung können Sie Ihren Nutzern private eingebettete Looks, Visualisierungen, Explores, Dashboards oder LookML-Dashboards präsentieren, ohne dass sie einen separaten Looker-Log-in benötigen. Stattdessen werden Nutzer über Ihre eigene Anwendung authentifiziert.
Bei der signierten Einbettung wird eine spezielle Looker-URL erstellt, die Sie in einem iFrame verwenden. Die URL enthält die Informationen, die Sie freigeben 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 von Looker bereitgestellten Secret-Schlüssel.
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 Looker-Admin-Bereich aktivieren und einen Einbettungs-Secret-Key erstellen. Eine Anleitung finden Sie auf der Dokumentationsseite Erste Schritte mit dem Einbetten – Signiertes Einbetten aktivieren.
Geeignetes Hosting für signierte Einbettung
In einigen Browsern, z. B. Safari, oder in Browsern mit installierten Erweiterungen, die Anzeigen oder Tracking-Cookies blockieren, wird standardmäßig eine Cookie-Richtlinie verwendet, die Drittanbieter-Cookies blockiert. Wenn die Funktion Cookieless Embed aktiviert ist, können Nutzer in Browsern, die Drittanbieter-Cookies blockieren, im eingebetteten iFrame über verschiedene Domains hinweg authentifiziert werden. Für die cookielose Einbettungsauthentifizierung ist eine serverseitige Konfiguration erforderlich. Beispiele für die Einrichtung finden Sie auf der Dokumentationsseite Einbetten ohne Cookies.
Wenn die Funktion Cookieless Embed nicht aktiviert ist, verwendet Looker Cookies für die Nutzerauthentifizierung. In diesem Fall ist es in Browsern, die Cookies von Drittanbietern blockieren, nicht möglich, das eingebettete iFrame domainübergreifend zu authentifizieren, es sei denn, der Nutzer ändert die Cookie-Datenschutzeinstellungen seines Browsers. Wenn Sie beispielsweise Informationen zu https://mycompany.com
einbetten möchten, muss Looker dieselbe Domain wie https://analytics.mycompany.com
verwenden. Wenn Looker Ihre Instanz hostet, wenden Sie sich an den Looker-Support, um die erforderliche DNS-Konfiguration für die Verwendung einer benutzerdefinierten Domain einzurichten. Dadurch kann Looker dieselbe Domain wie die eingebettete Anwendung verwenden und eigene Cookies nutzen, die standardmäßig in allen Browsern akzeptiert werden.
Wenn Sie eine vom Kunden gehostete Looker-Instanz haben, muss die Anwendung, die signiertes Einbetten verwendet, dieselbe Domain wie Ihre Looker-Instanz verwenden.
Sichtbarkeit von Mandanten mit einem geschlossenen System steuern
In einer signierten Einbettungskonfiguration ist es üblich, dass Looker-Nutzer Daten für ihre eigenen Kunden präsentieren, während sie Clients von verschiedenen Unternehmen oder Gruppen haben, die nichts voneinander wissen sollen. In diesem Fall empfehlen wir Ihnen dringend, Looker als geschlossenes System zu konfigurieren, auch Installation mit mehreren Mandanten genannt, um die privaten Informationen Ihrer Kunden zu schützen. In einem geschlossenen System werden Inhalte in Silos zusammengefasst, um zu verhindern, dass sich Nutzer aus verschiedenen Gruppen untereinander kennen. Aus diesem Grund empfehlen wir, die Option „Geschlossenes System“ zu aktivieren, bevor Sie externen Nutzern Zugriff auf Ihre Instanz gewähren.
Weitere Informationen finden Sie in den Dokumentationsseiten System von Zugriffsebenen entwerfen und konfigurieren und Best Practices für die Sicherheit von eingebetteter Analytik.
Signierte Einbettungs-URL generieren
Es gibt mehrere Möglichkeiten, die signierte Einbettungs-URL zu generieren. Sie können eine der folgenden Methoden verwenden:
Sie können eine signierte Einbettungs-URL über die Option Einbettungs-URL abrufen im Dashboard-Menü mit drei Punkten eines Dashboards oder im Zahnradmenü „Aktionen für explorative Datenanalyse“ eines Looks oder einer explorativen Datenanalyse generieren.
Verwenden Sie den Looker API-Endpunkt zum Erstellen einer signierten Einbettungs-URL, wie weiter unten in diesem Dokument beschrieben.
Verwenden Sie das Looker Embed SDK.
Signierte Einbettungs-URL codieren Um die richtige URL zu erstellen, müssen Sie Code schreiben, damit Sie die URL mit Ihrem Secret-Schlüssel richtig codieren und andere sicherheitsrelevante Elemente generieren können. Mehrere Beispielskripts finden Sie im GitHub-Repository für Looker-Einbettungsbeispiele. In den folgenden Abschnitten wird erläutert, welche Informationen Sie für diese Skripts angeben müssen und wie Sie eine signierte Einbettungs-URL ohne Skript erstellen.
Signierte Einbettungs-URL manuell codieren
Um die signierte Einbettungs-URL zu codieren, müssen Sie zuerst die erforderlichen Looker-Informationen erfassen und dann die signierte Einbettungs-URL erstellen.
Erforderliche Looker-Informationen erfassen
Als Ausgangspunkt für die Erstellung Ihrer URL sollten Sie zuerst alle Informationen festlegen, die enthalten sein müssen. Folgendes wird benötigt:
URL einbetten
Rufen Sie die URL des Looks, Explores, der Visualisierung der Abfrage oder des Dashboards ab, das Sie einbetten möchten. Entfernen Sie dann die Domain und setzen Sie /embed
vor den Pfad:
Element | Normales URL-Muster | URL einbetten |
---|---|---|
Look | https://instance_name.looker.com/looks/4 |
/embed/looks/4 |
Entdecken | 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 22 alphanumerischen Zeichen, die dem Parameter qid= in der Explore-URL folgen, bilden die Query.client_id . Der Query.client_id -Wert ist ein eindeutiger String, der die Abfrage und die Visualisierungseinstellungen darstellt.Wenn Sie eine Abfragevisualisierung einbetten möchten, rufen Sie den Wert Query.client_id der Abfragevisualisierung ab und kopieren Sie Query.client_id in Ihre Einbettungs-URL.Sie können die Looker-UI Explore verwenden, um eine Abfrage mit einer unterstützten Visualisierung zu erstellen und den Query.client_id -Wert aus dem Parameter qid= zu kopieren. Alternativ können Sie den Query.client_id -Wert mit der Looker API abrufen, z. B. mit der Methode Get Query . |
/embed/query-visualization/Query.client_id |
Benutzerdefiniertes Dashboard | https://instance_name.looker.com/dashboards/1 Fügen Sie alle Dashboard-Filterwerte oder, wenn Sie Filterwerte ausblenden, den Parameter hide_filter in die Dashboard-URL ein. |
|
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. Änderungen, die im Entwicklermodus vorgenommen werden und sich auf Inhalte auswirken, die nicht in der Produktionsumgebung bereitgestellt wurden, werden nicht in einem Einbettungscode angezeigt.
Berechtigungen
Ein Berechtigungssatz definiert, was ein Nutzer oder eine Gruppe tun kann. Berechtigungen können auf zwei Arten angewendet werden:
- Modellspezifisch:Diese Art von Berechtigung wird nur auf die Modellsätze angewendet, die Teil derselben Rolle sind.
- Instanzweit:Diese Art von Berechtigung gilt für die gesamte Looker-Instanz. Eingebettete Nutzer 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 Modellset 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 signierte Einbettungen nicht unterstützt:
Berechtigung | Abhängig von | Typ | Definition |
---|---|---|---|
access_data |
Keine | Modellspezifisch | Ermöglicht dem Nutzer den Zugriff auf Daten (erforderlich zum Aufrufen von Looks, Dashboards oder Explores) |
see_lookml_dashboards |
access_data |
Modellspezifisch | Nutzer können LookML-Dashboards sehen |
see_looks |
access_data |
Modellspezifisch | Nutzer können Looks sehen |
see_user_dashboards |
see_looks |
Modellspezifisch | Nutzer können benutzerdefinierte Dashboards aufrufen und Ordner über eine Einbettung durchsuchen. |
explore |
see_looks |
Modellspezifisch | Nutzer können die Seite „Entdecken“ aufrufen |
create_table_calculations |
explore |
Instanzweit | Erforderlich zum Erstellen von Tabellenkalkulationen in einem Explore |
create_custom_fields |
explore |
Instanzweit | Erforderlich, um benutzerdefinierte Felder in einem Explore zu erstellen |
can_create_forecast |
explore |
Instanzweit | Ermöglicht Nutzern, Prognosen in Visualisierungen zu erstellen oder zu bearbeiten. |
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 Nutzern, die Zustellung von Looker-Inhalten an einen beliebigen Webhook zu planen. |
send_to_s3 |
see_looks |
Modellspezifisch | Nutzern ermöglichen, die Lieferung von Looker-Inhalten an einen Amazon S3-Bucket zu planen |
send_to_sftp |
see_looks |
Modellspezifisch | Ermöglicht es Nutzern, die Lieferung von Looker-Inhalten an einen SFTP-Server zu planen |
schedule_look_emails |
see_looks |
Modellspezifisch | Ermöglicht es Nutzern, die Zustellung von Looker-Inhalten an ihre eigene E-Mail-Adresse zu planen (sofern mit einem Nutzerattribut namens „email“ festgelegt) oder an eine E-Mail-Adresse, die den durch die Zulassungsliste für E-Mail-Domains festgelegten Einschränkungen entspricht. Ermöglicht Nutzern mit create_alerts -Berechtigungen, Benachrichtigungen an eine E‑Mail-Adresse zu senden, die den durch die Zulassungsliste für E‑Mail-Domains festgelegten Einschränkungen entspricht. |
schedule_external_look_emails |
schedule_look_emails |
Modellspezifisch | Ermöglicht es Nutzern, die Zustellung von Looker-Inhalten an eine beliebige E‑Mail-Domain zu planen. Ermöglicht Nutzern mit der Berechtigung create_alerts , Benachrichtigungen an eine beliebige E-Mail-Domain zu senden. |
send_to_integration |
see_looks |
Modellspezifisch | Ermöglicht es Nutzern, Looker-Inhalte über den Looker Action Hub an die in Looker integrierten Drittanbieterdienste zu senden. Diese Berechtigung hat nichts mit Datenaktionen zu tun. |
create_alerts |
see_looks |
Instanzweit | Ermöglicht es Nutzern, Benachrichtigungen für Dashboardkacheln zu erstellen, um Benachrichtigungen zu erhalten, wenn bestimmte Bedingungen erfüllt oder überschritten werden. Nutzer können ihre eigenen Benachrichtigungen und 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 Benachrichtigungen erstellen, die Benachrichtigungen an Slack senden. |
download_with_limit |
see_looks |
Instanzweit | Ermöglicht es dem Nutzer, die Ergebnisse einer Abfrage mit einem angewendeten Limit herunterzuladen. |
download_without_limit |
see_looks |
Instanzweit | Ermöglicht dem Nutzer, die Ergebnisse einer Abfrage ohne Limit herunterzuladen |
see_sql |
see_looks |
Modellspezifisch | Nutzer können die SQL-Anweisungen für Abfragen und alle SQL-Fehler sehen, die beim Ausführen von Abfragen auftreten. |
clear_cache_refresh |
access_data |
Modellspezifisch | Nutzer können den Cache leeren und eingebettete Dashboards, ältere Dashboards, Dashboard-Kacheln, Looks und Explores aktualisieren. |
see_drill_overlay |
access_data |
Modellspezifisch | Nutzer können Daten analysieren, ohne die vollständige Seite „Erkunden“ aufrufen zu müssen. |
manage_spaces |
Keine | Instanzweit | Aktiviert den Content-Browser, damit Nutzer Ordner erstellen, kopieren, verschieben und löschen können. Nutzer benötigen außerdem die Berechtigung Zugriff verwalten, bearbeiten für den Ordner oder, wenn ein neuer Ordner erstellt wird, für den übergeordneten Ordner. |
embed_browse_spaces |
Keine | Instanzweit | Aktiviert die Inhaltsübersicht, damit Nutzer Ordner über ein eingebettetes Element durchsuchen können. Jeder Einbettungsnutzer, dem die Berechtigung embed_browse_spaces erteilt wird, erhält Zugriff auf einen persönlichen Einbettungsordner und auf den Ordner Freigegeben Ihrer Organisation, sofern vorhanden. Die Berechtigung embed_browse_spaces wird für Nutzer mit der Berechtigung save_content empfohlen, damit sie beim Auswählen des Speicherorts für Inhalte Ordner durchsuchen können. Um die Inhalte in Ordnern zu sehen, benötigt der Nutzer außerdem die Berechtigungen see_looks , see_user_dashboards und see_lookml_dashboards .Die Berechtigung embed_browse_spaces ist für eingebettete Nutzer erforderlich, die Dashboards oder Looks als Favoriten markieren möchten, da für das Markieren von Inhalten als Favoriten der Zugriff auf den Ordner Favoriten erforderlich ist. |
embed_save_shared_space |
Keine | Instanzweit | Ermöglicht Nutzern, die auch die Berechtigung save_content haben, im Dialogfeld Speichern zum Ordner Freigegeben der Organisation zu navigieren, sofern dieser vorhanden ist. Nutzer mit der Berechtigung save_content , aber nicht mit der Berechtigung embed_save_shared_space können Inhalte nur in ihrem persönlichen Einbettungsordner speichern.Die Berechtigung embed_save_shared_space überschreibt nicht die Berechtigungen für den Zugriff auf Inhalte. Wenn ein Nutzer beispielsweise Dateien im Ordner Freigegeben speichern soll, benötigt er weiterhin die Berechtigung Zugriff verwalten, Bearbeiten für den Ordner Freigegeben. Wenn ein Nutzer nicht die Berechtigung embed_save_shared_space hat, kann er trotzdem Inhalte im Ordner Freigegeben speichern, sofern er die Berechtigung save_content und Zugriff verwalten, bearbeiten für den Ordner Freigegeben hat und auf anderem Wege darauf zugreifen kann, z. B. über die Option Von hier aus explorieren in einem eingebetteten Dashboard. |
Modellzugriff
Legen Sie fest, auf welche LookML-Modelle der Nutzer Zugriff haben soll. Das ist einfach eine Liste mit Modellnamen.
Nutzerattribute
Legen Sie fest, welche Nutzerattribute der Nutzer ggf. haben sollte. Sie benötigen den Namen des Nutzerattributs aus Looker sowie den Wert, den der Nutzer für dieses Attribut haben soll.
Gruppen
Legen Sie fest, welchen Gruppen der Nutzer ggf. angehören soll. Sie benötigen die Gruppen-IDs und nicht die Gruppennamen. Wenn Sie einen Nutzer mit signiertem Einbettungscode einer Looker-Gruppe hinzufügen, können Sie den Zugriff dieses Nutzers auf Looker-Ordner verwalten. Eingebettete Nutzer mit Signatur 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 zu erstellen, die nicht zu den regulären Looker-Gruppen gehört. In diesem Fall haben signierte Nutzer mit eingebetteten Inhalten mit derselben external_group_id
Zugriff auf einen freigegebenen Ordner mit dem Namen „Gruppe“, der für die externe Gruppe eindeutig ist.
Eingebettete Rollen
Mit den Parametern permissions
und models
wird eine Rolle für den eingebetteten Nutzer erstellt. Diese Rolle wird in Looker im Bereich Verwaltung auf der Seite Nutzer als „Eingebettete Rolle“ angezeigt. Wenn die Parameter permissions
, models
und group_ids
alle in der Einbettungs-URL angegeben sind, ist die eingebettete Rolle additiv zu allen Rollen, die den im Parameter group_ids
aufgeführten Gruppen bereits zugewiesen sind. Das ist dasselbe wie bei Standardrollen, da alle Rollen in Looker additiv sind.
Angenommen, Sie haben eine vorhandene Gruppe in Looker mit der Gruppen-ID 1
. Diese Gruppe hat bereits die Berechtigung explore
für ein Modell namens model_one
. Sie erstellen eine Einbettungs-URL mit den folgenden Parametern:
group_ids
=["1"]
permissions
=["access_data","see_looks"]
models
=["model_two"]
In diesem Fall erbt der eingebettete Nutzer die Möglichkeit, die Daten auf model_one
anzusehen und zu analysieren. Die mit den vorherigen Parametern erstellte eingebettete Rolle gewährt auch die Möglichkeit, die Daten auf model_two
anzusehen.
Einbettungs-URL erstellen
Eine signierte Einbettungs-URL hat das folgende Format:
https://HOST/login/embed/EMBED URL?PARAMETERS&signature=SIGNATURE
Host
Der Host ist der Ort, 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 ermittelt. Sie hat ein Format wie:
/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 Ihrer finalen URL angezeigt wird. Das ist korrekt.
Wenn Sie eingebettete JavaScript-Ereignisse verwenden, müssen Sie der Einbettungs-URL ein embed_domain
(die Domain, in der der iFrame verwendet wird) hinzufügen, z. B.:
/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
hatten, 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 Sie das Embed SDK verwenden, müssen Sie embed_domain
hinzufügen und sdk=2
am Ende der Einbettungs-URL einfügen, z. B.:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com&sdk=2
Mit dem Parameter sdk=2
kann Looker erkennen, dass das SDK vorhanden ist, und zusätzliche Funktionen nutzen, die vom SDK bereitgestellt werden. Das SDK kann diesen Parameter nicht selbst hinzufügen, da er Teil der signierten URL ist.
Parameter
Die folgenden URL-Parameter werden verwendet, um die erforderlichen Informationen für die signierte Einbettung anzugeben:
Parameter | Standardwert | Beschreibung | Datentyp | Beispiel |
---|---|---|---|---|
nonce |
Wert erforderlich | Ein beliebiger zufälliger String, der innerhalb einer Stunde nicht wiederholt werden darf und weniger als 255 Zeichen lang sein muss.So wird verhindert, dass ein Angreifer die URL eines legitimen Nutzers noch einmal einreicht, um Informationen zu sammeln, die er nicht haben sollte. | JSON-String | "22b1ee700ef3dc2f500fb7" |
time |
Wert erforderlich | Die aktuelle Zeit als UNIX-Zeitstempel. | Ganzzahl | 1407876784 |
session_length |
Wert erforderlich | Die Anzahl der Sekunden zwischen 0 und 2.592.000 (30 Tage), die der Nutzer bei Looker angemeldet bleiben soll. | Ganzzahl | 86400 |
external_user_id |
Wert erforderlich | Eine Kennung für jeden Nutzer in der Anwendung, in die Looker eingebettet ist. In Looker wird external_user_id verwendet, um zwischen angemeldeten eingebetteten Nutzern zu unterscheiden. Jeder Nutzer muss daher eine eindeutige ID haben.Sie können für einen Nutzer eine external_user_id mit einem beliebigen String erstellen, solange dieser für den Nutzer eindeutig ist. Jede ID ist mit einer Reihe von Berechtigungen, Nutzerattributen und Modellen verknüpft. Ein einzelner Browser kann jeweils nur eine external_user_id oder Nutzersitzung unterstützen. Während einer Sitzung können keine Änderungen an den Berechtigungen oder Nutzerattributen eines Nutzers vorgenommen werden.Aus Sicherheitsgründen sollten Sie nicht denselben external_user_id für verschiedene Einbettungssitzungen für verschiedene interaktive Nutzer verwenden. Außerdem sollten Sie nicht denselben external_user_id für einen einzelnen Nutzer verwenden, der unterschiedliche Berechtigungen, Nutzerattributwerte oder Modellzugriff hat.Wenn Sie dieselbe external_user_id für mehrere Nutzer oder für denselben Nutzer mit mehreren Berechtigungen, Nutzerattributen oder Modellgruppen verwenden, können Daten 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 im Abschnitt „Berechtigungen“ auf dieser Seite. | 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 zutreffend). Verwenden Sie Gruppen-IDs anstelle von Gruppennamen. | Stringarray | ["4", "3"] |
external_group_id |
"" | Eine eindeutige Kennung für die Gruppe, zu der der Nutzer in der Anwendung gehört, in die Looker eingebettet ist.Nutzer mit der Berechtigung zum Speichern von Inhalten, die eine externe Gruppen-ID gemeinsam nutzen, können Inhalte in einem gemeinsamen Looker-Ordner mit dem Namen „Group“ speichern und bearbeiten. Der Parameter external_group_id ist die einzige verfügbare Methode zum Erstellen externer Gruppen von eingebetteten Nutzern. Es ist nicht möglich, externe Nutzergruppen für das Einbetten über die Looker-Benutzeroberfläche zu konfigurieren.Die Länge der external_group_id darf 81 Zeichen nicht überschreiten. Für die Gruppe wird ein entsprechender Ordner erstellt. Ordnernamen dürfen maximal 100 Zeichen umfassen. Dem Ordnernamen wird „Embed Shared Group “ vorangestellt. Daher ist external_group_id auf 81 Zeichen beschränkt, damit die Zeichenbeschränkung von maximal 100 Zeichen eingehalten wird. |
JSON-String | "Accounting" |
user_attributes |
{} | Die Liste der Nutzerattribute, die der Nutzer ggf. haben sollte. Enthält eine Liste mit Namen von Nutzerattributen, gefolgt vom Wert des Nutzerattributs.Wenn Ihr LookML-Modell lokalisiert ist, können Sie das Nutzerattribut locale in der Einbettungs-URL verwenden, um eine Sprache für die Einbettung anzugeben. Wenn Sie beispielsweise den Parameter user_attributes { "locale" : "fr_FR" } einfügen, wird die Einbettung in Französisch geladen. |
Hash von Strings | { "vendor_id" : "17", "company" : "xactness" } |
access_filters |
Wert erforderlich | In Looker 3.10 wurde dieser Parameter entfernt, er 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 Sie das Feld leer lassen, behält first_name den Wert aus der letzten Anfrage bei oder ist „Einbetten“, wenn noch nie ein 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 ist „Embed“, wenn noch nie ein Nachname festgelegt wurde. |
JSON-String | "Jones" |
user_timezone |
"" | Wenn Sie nutzerspezifische Zeitzonen aktiviert haben, wird der Wert der Option Zeitzone des Betrachters im Drop-down-Menü Zeitzone des eingebetteten Looks oder Dashboards festgelegt. Dieser Parameter ändert nicht direkt die Zeitzone, in der der Inhalt angezeigt wird. 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 Einbettung.Tipp vom Chat-Team:Wenn die eingebetteten Inhalte standardmäßig in der Zeitzone des Zuschauers angezeigt werden sollen, verwenden Sie eine der folgenden Methoden:?query_timezone=user_timezone der Einbettungs-URL 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-Nutzer bereits in Looker angemeldet ist und ein signiertes eingebettetes Element aufruft, können Sie festlegen, ob:1. Sie sollten sich das Element mit ihren aktuellen Anmeldedaten ansehen.oder2. Sie sollten abgemeldet und mit den signierten Einbettungsanmeldedaten wieder angemeldet sein. | Boolesch („true“ oder „false“) | true |
Unterschrift
Looker verwendet die Signatur, um zu prüfen, ob das richtige Einbettungs-Secret zum Generieren der Signatur in der Einbettungs-URL verwendet wurde und ob sich die Parameter in der Einbettungs-URL geändert haben. Wenn entweder das Einbettungs-Secret oder die URL-Parameter unterschiedlich sind oder sich geändert haben, stimmt die Signatur nicht überein und die Authentifizierung wird abgelehnt.
Die Signatur in der Einbettungs-URL bietet einen kryptografisch starken Beweis dafür, dass die Einbettungs-URL während der Übertragung nicht geändert wurde und dass die Einbettungs-URL von einer vertrauenswürdigen Partei erstellt wurde, die den Secret-Schlüssel für die Einbettung besitzt.
So generieren Sie die Signatur:
- 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
- Externe Gruppen-ID
- Nutzerattribute
- Zugriffsfilter (erfordert einen leeren Platzhalter)
- Host, gefolgt von
- Alle Werte außer „Host“ und „Embed URL“ als JSON formatieren
- Werte mit Zeilenumbrüchen (
\n
) verketten - Signieren Sie den verketteten String mit Ihrem Looker-Einbettungs-Secret-Key mit HMAC-SHA1.
Codierung
Im letzten Schritt müssen Sie Ihre URL URL-codieren.
Vor der URL-Codierung könnte eine korrekt formatierte Einbettungs-URL, die alle möglichen Parameter verwendet, 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 richtig, dass /embed//embed/
in Ihrer URL angezeigt wird.
Nach der URL-Codierung 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 Einbettungs-URL erstellen“ verwenden
Die Looker API enthält den Endpunkt Create Signed Embed Url, der eine Reihe von signierten Einbettungsparametern entgegennimmt, darunter die URL der Inhalte, die Sie einbetten möchten, und eine vollständige, codierte, kryptografisch signierte URL zurückgibt.
Wenn Sie diesen API-Endpunkt von einem Webserver aus verwenden möchten, muss der Webserver in der Lage sein, sich mit Administratorberechtigungen bei der Looker API zu authentifizieren. Die Webserverdomain muss auch in der Zulassungsliste für Einbettungsdomains 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 in Ihrer Looker-Instanz installieren. Nach der Generierung muss die signierte URL exakt kopiert werden und kann nur einmal verwendet werden. Andernfalls schlägt der Vorgang fehl. Der API Explorer ist auch nützlich, um eine signierte URL zu generieren und sie zu Fehlerbehebungszwecken 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
Wenn Sie die finale URL testen möchten, fügen Sie sie auf der Seite Einbetten im Bereich Administrator von Looker in das Tool zur Validierung von Einbettungs-URIs ein. Mit dieser Option lässt sich zwar nicht prüfen, ob die von Ihnen vorgesehenen Daten und Berechtigungen richtig eingerichtet wurden, aber Sie können damit bestätigen, dass die Authentifizierung ordnungsgemäß funktioniert.