Signierte Einbettung

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:

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:

  • Fügen Sie den Parameter ?query_timezone=user_timezone der Einbettungs-URL hinzu. Beispiel:

    /embed/dashboards/1?query_timezone=user_timezone
  • Speichern Sie das eingebettete Dashboard oder den eingebetteten Look mit der Standardzeitzone, die auf Zeitzone des Betrachters festgelegt ist. Dadurch wird standardmäßig die Zeitzone des Nutzers verwendet, sowohl für eingebettete als auch für nicht eingebettete Nutzer.
  • 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.

    oder

    2. 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:

    1. 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)
    2. Alle Werte außer „Host“ und „Embed URL“ als JSON formatieren
    3. Werte mit Zeilenumbrüchen (\n) verketten
    4. 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.