Wenden Sie sich an Ihren Looker-Account Manager, wenn Sie diese Funktionen nutzen möchten.
Mit der Einbettung einer Einmalanmeldung (SSO) können Sie Ihren Nutzern private eingebettete Looks, Visualisierungen, explorative Datenanalysen, Dashboards oder LookML-Dashboards präsentieren, ohne dass sie eine separate Looker-Anmeldung benötigen. Stattdessen werden Nutzer über Ihre eigene Anwendung authentifiziert.
Für die SSO-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 dieser Nutzer haben soll. Anschließend signieren Sie die URL mit einem geheimen Schlüssel von Looker.
Weitere Informationen zum öffentlichen Einbetten findest du auf der Dokumentationsseite zu Öffentliche Freigabe, Import und Einbettung von Looks im Abschnitt Öffentliche Einbettung mit iframe
-Tags.
Korrektes Hosting für SSO-Einbettungen
Einige Browser, z. B. Safari oder Browser, in denen Anzeigen oder Tracking-Erweiterungen installiert sind, verwenden standardmäßig eine Cookierichtlinie, die Cookies von Drittanbietern blockiert. Da Looker Cookies für die Nutzerauthentifizierung verwendet, ist es nicht möglich, den eingebetteten iFrame domainübergreifend zu authentifizieren, es sei denn, der Nutzer ändert die Cookie-Datenschutzeinstellungen des Browsers. Wenn Sie beispielsweise Informationen in https://mycompany.com
einbetten möchten, müssen Sie darauf achten, dass Looker dieselbe Domain verwendet, z. B. https://analytics.mycompany.com
.
Wenn Looker Ihre Instanz hostet, bitten Sie den Looker-Support, die erforderliche DNS-Konfiguration für die Verwendung der benutzerdefinierten Domain einzurichten. So kann Looker dieselbe Domain wie die eingebettete Anwendung verwenden und eigene Cookies verwenden, die standardmäßig in allen Browsern akzeptiert werden. Öffnen Sie eine Supportanfrage in der Looker-Hilfe, indem Sie auf Kontakt klicken.
Wenn Sie eine vom Kunden gehostete Looker-Instanz haben, achten Sie darauf, dass die Anwendung, die die SSO-Einbettung verwendet, dieselbe Domain wie Ihre Looker-Instanz verwendet.
Sichtbarkeit des Clients mit einem geschlossenen System steuern
Bei SSO-Nutzern ist es üblich, dass Looker-Nutzer ihren Kunden Daten präsentieren und dabei Clients aus anderen Unternehmen oder Gruppen haben, die einander nicht kennen sollten. Zum Schutz Ihrer privaten Daten empfehlen wir dringend, Looker als geschlossenes System zu konfigurieren, das auch als mehrinstanzenfähige Installation bezeichnet wird. In einem geschlossenen System werden Inhalte isoliert gespeichert, um zu verhindern, dass Nutzer aus verschiedenen Gruppen voneinander erfahren. Aus diesem Grund empfehlen wir, dass Sie die Option Geschlossenes System aktivieren, bevor Sie externen Nutzern Zugriff auf Ihre Instanz gewähren.
Weitere Informationen finden Sie auf der Dokumentationsseite Ein System von Zugriffsebenen entwerfen und konfigurieren und in den Best Practices für die Sicherheit eingebetteter Analysen.
Geheimer Schlüssel von Looker wird generiert
Um zu bestätigen, dass eine Anfrage für die SSO-Einbettung seriös ist und nicht von einer anderen Person gefälscht wurde, müssen Sie zuerst ein Einbettungs-Secret generieren. Anleitung:
- Rufen Sie in Looker im Abschnitt Admin die Seite Embed auf.
- Wählen Sie im Drop-down-Menü Einbetten der SSO-Authentifizierung die Option Aktiviert aus und klicken Sie dann auf Aktualisieren.
- Klicke auf die Schaltfläche Secret zurücksetzen, um das Einbettungs-Secret zu generieren. Achten Sie darauf, dieses Secret an einen sicheren Speicherort zu kopieren, da Sie es nicht ohne vorheriges Abrufen aus Looker abrufen können. Wenn Sie den Schlüssel zurücksetzen, funktionieren alle Einbettungen, die den alten Schlüssel verwendet haben, nicht mehr.
Jeder Nutzer mit Zugriff auf den geheimen Schlüssel kann eine URL für den Zugriff auf jedes Modell erstellen, mit dem die Looker-Instanz wie alle Nutzer mit entsprechender Berechtigung verbunden ist. Schützen Sie das SSO-Einbettungsgeheimnis wie bei Administrator-Anmeldedaten für Ihre eingebettete Looker-Instanz. Lassen Sie die SSO-Einbettung deaktiviert, wenn Sie sie nicht verwenden.
Einbettungs-URL erstellen
Zum Erstellen der richtigen URL müssen Sie Code schreiben, damit Sie die URL richtig mit Ihrem geheimen Schlüssel codieren und weitere sicherheitsrelevante Elemente generieren können. In unserem GitHub-Repository für SSO-Beispiele finden Sie mehrere Beispielskripts. In den folgenden Abschnitten werden die Informationen erläutert, die Sie für diese Skripts bereitstellen müssen.
Erforderliche Looker-Informationen erfassen
Als Ausgangspunkt zum Erstellen Ihrer URL sollten Sie zuerst alle erforderlichen Informationen angeben. Folgendes wird benötigt:
URL einbetten
Rufen Sie die URL des Look-, Explore-, Abfragevisualisierungs- oder Dashboard-Elements 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 |
Untersuchen | 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 umfasst die 22 alphanumerischen Zeichen, die dem Parameter qid= in der URL „Entdecken“ 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 die Query.client_id in Ihre eingebettete URL.Über die Benutzeroberfläche von Looker Erkunden können Sie eine Abfrage mit einer unterstützten Visualisierung erstellen und den Query.client_id -Wert aus dem Parameter qid= kopieren. Alternativ können Sie Query.client_id mit der Looker API mithilfe der Methode Get Query abrufen. |
/embed/query-visualization/Query.client_id |
Benutzerdefiniertes Dashboard | https://instance_name.looker.com/ dashboards/1 |
/embed/dashboards/1 |
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. Im Entwicklungsmodus vorgenommene Änderungen, die sich auf den Inhalt auswirken und noch nicht in der Produktionsumgebung bereitgestellt wurden, werden nicht in einer Einbettung angezeigt.
Berechtigungen
Mit einem Berechtigungssatz wird festgelegt, was ein Nutzer oder eine Gruppe tun kann. Berechtigungen können auf zwei Arten angewendet werden:
- Modellspezifisch: Dieser Berechtigungstyp wird nur auf die Modellsätze angewendet, die Teil derselben Rolle sind.
- Instanzweit: Dieser Berechtigungstyp gilt für die gesamte Looker-Instanz. Nutzer mit instanzweiten Berechtigungen können bestimmte Funktionen in der gesamten Looker-Instanz ausführen, haben aber keinen Zugriff auf Inhalte, die auf Modellen basieren, die nicht im Modellsatz der Rolle enthalten sind.
Legen Sie die Berechtigungen fest, die der Nutzer haben soll. Die folgende Liste enthält alle verfügbaren Berechtigungen für die SSO-Einbettung. Berechtigungen, die nicht auf der folgenden Liste stehen, werden für die SSO-Einbettung nicht unterstützt:
Berechtigung | Hängt von | Typ | Definition |
---|---|---|---|
access_data |
– | Modellspezifisch | Der Nutzer darf auf Daten zugreifen (erforderlich für die Anzeige von Looks, Dashboards oder Entdeckungen) |
see_lookml_dashboards |
access_data |
Modellspezifisch | Nutzer können LookML-Dashboards ansehen |
see_looks |
access_data |
Modellspezifisch | Lässt Nutzer den Look sehen |
see_user_dashboards |
see_looks |
Modellspezifisch | Nutzer können benutzerdefinierte Dashboards sehen und Ordner aus einer eingebetteten Datei ansehen |
explore |
see_looks |
Modellspezifisch | Nutzer sieht die Seiten „Entdecken“ |
create_table_calculations |
explore |
Instanzweit | Tabellenberechnungen in einem Tab „Entdecken“ erstellen |
create_custom_fields |
explore |
Instanzweit | ADDED 22.4 Erforderlich, um benutzerdefinierte Felder in einem Explore zu erstellen |
can_create_forecast |
explore |
Instanzweit | ADDED 22.12 Nutzer können Prognosen in Visualisierungen erstellen oder bearbeiten. |
save_content |
see_looks |
Instanzweit | Nutzer kann Änderungen an Looks und Dashboards vornehmen und speichern |
send_outgoing_webhook |
see_looks |
Modellspezifisch | Ermöglicht es Nutzern, Dashboards zu planen und einen beliebigen Webhook anzusehen |
send_to_s3 |
see_looks |
Modellspezifisch | Ermöglicht es Nutzern, Dashboards zu planen und einen Amazon S3-Bucket anzusehen |
send_to_sftp |
see_looks |
Modellspezifisch | Ermöglicht es Nutzern, Dashboards zu planen und einen SFTP-Server auszuwählen |
schedule_look_emails |
see_looks |
Modellspezifisch | Damit können Nutzer Dashboards planen und sie werden an ihre eigene E-Mail-Adresse (die mit einem Nutzerattribut mit dem Namen "email") oder an eine E-Mail-Adresse gesendet wird, die innerhalb der in der Zulassungsliste für E-Mail-Domains festgelegten Einschränkungen liegt. Nutzer mit create_alerts -Berechtigungen können Benachrichtigungen an eine E-Mail-Adresse senden, die innerhalb der durch die Zulassungsliste für E-Mail-Domains festgelegten Beschränkungen liegt. |
schedule_external_look_emails |
schedule_look_ emails |
Modellspezifisch | Ermöglicht Nutzern, Dashboards zu planen und das Senden per E-Mail zu planen. Nutzer mit create_alerts -Berechtigungen können Benachrichtigungen an eine beliebige E-Mail-Domain senden. |
send_to_ integration |
see_looks |
Modellspezifisch | Ermöglicht es Nutzern, über den Looker Action Hub Looker-Inhalte an die in Looker integrierten Drittanbieterdienste zu senden. Weitere Informationen Diese Berechtigung hat nichts mit Datenaktionen zu tun. |
create_alerts |
see_looks |
Instanzweit | Nutzer können Benachrichtigungen auf Dashboard-Kacheln erstellen, um Benachrichtigungen zu erhalten, wenn bestimmte Bedingungen erfüllt oder überschritten werden. Nutzer können ihre eigenen und andere Warnungen bearbeiten, duplizieren und löschen. Wenn der Slack-Arbeitsbereich des Nutzers nicht mit der Looker-Instanz verbunden ist, kann der Nutzer keine Benachrichtigungen erstellen, durch die Benachrichtigungen an Slack gesendet werden. |
download_with_limit |
see_looks |
Instanzweit | Zulassen, dass der Nutzer Ergebnisse einer Abfrage mit einem angewendeten Limit herunterlädt |
download_without_limit |
see_looks |
Instanzweit | Zulassen, dass der Nutzer Ergebnisse einer Abfrage ohne Begrenzung herunterlädt |
see_sql |
see_looks |
Modellspezifisch | Lässt den Nutzer den SQL für Abfragen und alle SQL-Fehler sehen, die sich aus der Ausführung von Abfragen ergeben |
clear_cache_refresh |
access_data |
Modellspezifisch | HINZUGEFÜGT 21.14 Nutzer können den Cache leeren und eingebettete Dashboards, Legacy-Dashboards, Dashboard-Kacheln, „Looks“ und „Erkunden“ aktualisieren. |
see_drill_overlay |
access_data |
Modellspezifisch | Hiermit können Nutzer die Aufschlüsselung durchführen, ohne die Seite „Erkunden“ aufrufen zu müssen. |
embed_browse_spaces |
– | Instanzweit | Aktiviert den Inhaltsbrowser, sodass ein Nutzer Ordner aus einem eingebetteten Inhalt durchsuchen kann. Einbettungsnutzer mit embed_browse_spaces -Berechtigung erhalten Zugriff auf einen persönlichen Einbettungsordner und den Freigegebenen Ordner Ihrer Organisation (falls vorhanden). Die Berechtigung embed_browse_spaces wird für Nutzer mit der Berechtigung save_content empfohlen, damit sie Ordner auswählen können, wenn sie einen Speicherort für Inhalte auswählen. Um die Inhalte in Ordnern sehen zu können, benötigt der Nutzer außerdem die Berechtigungen see_looks , see_user_dashboards und see_lookml_dashboards . |
embed_save../_shared_space |
– | Instanzweit |
HINZUGEFÜGT 21.4
Ermöglicht Nutzern, die ebenfalls die Berechtigung save_content haben, über das Dialogfeld Speichern den Ordner Freigegeben der Organisation aufzurufen, falls vorhanden. Nutzer mit der Berechtigung save_content , aber nicht embed_save_shared_space können nur Inhalte in ihrem persönlichen Einbettungsordner speichern.Die Berechtigung embed_save_shared_space hat keine Auswirkungen auf die Zugriffsberechtigungen für Inhalte. Damit die Nutzer beispielsweise Inhalte im Ordner Freigegeben speichern können, benötigen sie weiterhin die Berechtigung Zugriff verwalten, Bearbeiten für den Ordner Freigegeben. Außerdem verhindert das Fehlen der Berechtigung embed_save_shared_space nicht, dass ein Nutzer mit der Berechtigung save_content und mit der Berechtigung Zugriff verwalten, Bearbeiten für den Ordner Freigegeben den Inhalt dort speichert, wenn er eine alternative Möglichkeit hat, den Ordner Freigegeben aufzurufen, z. B. über die Option Von hier entdecken aus einem eingebetteten Dashboard. |
Modellzugriff
Legen Sie fest, auf welche LookML-Modelle der Nutzer zugreifen kann. Das ist dann einfach eine Liste mit Modellnamen.
Nutzerattribute
Legen Sie gegebenenfalls fest, welche Nutzerattribute der Nutzer haben soll. Sie benötigen den Namen des Nutzerattributs aus Looker sowie den Wert, den der Nutzer für dieses Attribut haben soll.
Groups
Bestimmen Sie, zu welchen Gruppen der Nutzer gehören soll (falls zutreffend). Im Gegensatz zu den Gruppennamen benötigen Sie die Gruppen-IDs. Wenn Sie einer Looker-Gruppe einen eingebetteten SSO-Nutzer hinzufügen, können Sie den Zugriff dieses Nutzers auf Looker-Ordner verwalten. SSO-Einbettungsnutzer haben Zugriff auf alle Ordner, die für die Mitglieder ihrer Looker-Gruppen freigegeben sind.
Sie können auch den Parameter external_group_id
verwenden, um eine Gruppe zu erstellen, die sich außerhalb der regulären Looker-Gruppen befindet. In diesem Fall haben SSO-Nutzer mit derselben external_group_id
Zugriff auf einen freigegebenen Ordner namens „Gruppe“, der für die externe Gruppe eindeutig ist.
Eingebettete Rollen
Die Parameter permissions
und models
erstellen eine Rolle für den eingebetteten Nutzer. Diese Rolle wird auf der Seite Nutzer im Abschnitt Admin von Lookers als eingebettete Rolle angezeigt. Wenn in der eingebetteten URL alle Parameter permissions
, models
und group_ids
angegeben sind, wird die eingebettete Rolle additiv zu allen Rollen hinzugefügt, die bereits den im Parameter group_ids
aufgeführten Gruppen zugewiesen sind. Dies ist das gleiche wie bei Standardrollen, da alle Rollen in Looker additiv sind.
Angenommen, Sie haben eine vorhandene Gruppe in Looker mit der Gruppen-ID 1
, und diese Gruppe hat bereits die Berechtigung explore
für ein Modell mit dem Namen model_one
und Sie erstellen eine Einbettungs-URL mit den folgenden Parametern:
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
aufzurufen und zu prüfen. Die mit den vorherigen Parametern erstellte Einbettungsrolle gewährt dann auch die Berechtigung zum Aufrufen der Daten in model_two
.
Einbettungs-URL erstellen
Eine SSO-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
. Achten Sie darauf, die Portnummer anzugeben, wenn Sie die Portweiterleitung nicht aktiviert haben, z. B. analytics.mycompany.com:9999
.
URL einbetten
Die Einbettungs-URL wurde zuvor ermittelt. Sie hat folgendes Format:
/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.
Wenn du eingebettete JavaScript-Ereignisse verwendest, musst du embed_domain
(die Domain, in der der iFrame verwendet wird) an das Ende der eingebetteten URL anhängen. Das sieht dann so aus:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com
embed_domain
wird nach der Einbettungs-URL und vor allen Parametern eingefügt. Bei vorhandenen Parametern wie nonce=626
würde das Hinzufügen von embed_domain
folgendermaßen 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
hinzufügen und sdk=2
am Ende der eingebetteten URL einfügen:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com&sdk=2
Mit dem Parameter sdk=2
kann Looker feststellen, dass das SDK vorhanden ist, und zusätzliche Funktionen des SDK nutzen. Das SDK kann diesen Parameter nicht selbst hinzufügen, da es Teil der signierten SSO-URL ist.
Parameter
Die folgenden URL-Parameter werden verwendet, um die erforderlichen Informationen für die Einbettung der Einmalanmeldung (SSO) anzugeben:
Parameter | Wert erforderlich? | Beschreibung | Datentyp | Beispiel |
---|---|---|---|---|
nonce |
Ja | Beliebiger String, der beliebig oft wiederholt werden darf. Er darf nicht länger als 255 Zeichen sein. Dadurch wird verhindert, dass ein Angreifer eine legitime Nutzer-URL noch einmal einreicht, um Informationen zu sammeln, die er nicht haben sollte. |
JSON-String | "22b1ee700ef3dc2f500fb7" |
time |
Ja | Die aktuelle Zeit als UNIX-Zeitstempel. | Integer | 1407876784 |
session_length |
Ja | Die Anzahl der Sekunden, die der Nutzer bei Looker angemeldet bleibt, zwischen 0 und 2.592.000 Sekunden (30 Tage). | Integer | 86400 |
external_user_id |
Ja | Eine Kennzeichnung für jeden Nutzer in der Anwendung, die Looker einbettet. Looker verwendet external_user_id , um SSO-Einbettungsnutzer voneinander zu unterscheiden. Daher muss jedem Nutzer eine eindeutige ID zugewiesen werden.Sie können eine external_user_id für einen Nutzer mit einem beliebigen String erstellen, solange er für diesen 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 (Nutzersitzung) unterstützen. An den Berechtigungen oder Nutzerattributen eines Nutzers können während einer Sitzung keine Änderungen vorgenommen werden.Aus Sicherheitsgründen solltest du für unterschiedliche Einbettungssitzungen für verschiedene interaktive Nutzer nicht denselben external_user_id verwenden. Außerdem solltest du darauf achten, nicht denselben external_user_id für einen einzelnen Nutzer mit unterschiedlichen Berechtigungen, Nutzerattributwerten oder demselben Modellzugriff zu verwenden.Wenn du dieselbe external_user_id für mehrere Nutzer oder für einen anderen Nutzer mit mehreren Berechtigungen verwendest, kann es passieren, dass Nutzerdaten sichtbar werden. |
JSON-String | "user-4" |
permissions |
Ja | Die Liste der Berechtigungen für den Nutzer. Im Abschnitt Berechtigungen auf dieser Seite finden Sie eine Liste der zulässigen Berechtigungen. |
Stringarray | [ "access_data", "see_looks" ] |
models |
Ja | Die Liste der Modellnamen, auf die der Nutzer Zugriff haben sollte. | Stringarray | [ "model_one", "model_two" ] |
group_ids |
Nein | Die Liste der Looker-Gruppen, in denen der Nutzer Mitglied sein sollte, sofern vorhanden. Verwenden Sie Gruppen-IDs anstelle von Gruppennamen. | Array von Ganzzahlen | [4, 3] |
external_group_id |
Nein | Eine eindeutige Kennung für die Gruppe, zu der der Nutzer in der Anwendung gehört, in die Looker eingebettet ist, falls gewünscht. Nutzer, die berechtigt sind, Inhalte zu speichern und eine externe Gruppen-ID verwenden, können Inhalte in einem freigegebenen Looker-Ordner mit dem Namen "Group." speichern und bearbeiten. |
JSON-String | "Accounting" |
user_attributes |
Nein | Die Liste der Nutzerattribute, die der Nutzer haben sollte, falls vorhanden. Enthält eine Liste mit Nutzerattributnamen, gefolgt vom Wert des Nutzerattributs. Wenn dein LookML-Modell lokalisiert ist, kannst du das Nutzerattribut locale in der eingebetteten URL verwenden, um eine Sprache für die Einbettung anzugeben. Wenn Sie beispielsweise den Parameter user_attributes { "locale" : "fr_FR" } einfügen, wird das Einbettungsprogramm Französisch als Sprache geladen. |
Hash von Strings | { "vendor_id" : "17", "company" : "xactness" } |
access_filters |
Ja | In Looker 3.10 wurde dieser Parameter entfernt, ist aber in der URL weiterhin erforderlich. Verwenden Sie access_filters mit einem leeren Platzhalter, z. B. access_filters={} . |
Platzhalter leer | {} |
first_name |
Nein | Der Vorname des Nutzers. Wenn Sie das Feld leer lassen, behält first_name den Wert der letzten Anfrage bei oder wird „Einbetten“ verwendet, wenn noch kein Vorname festgelegt wurde. |
JSON-String | "Alice" |
last_name |
Nein | Der Nachname des Nutzers. Wenn Sie das Feld leer lassen, behält last_name den Wert der letzten Anfrage bei oder wird „Einbetten“ verwendet, wenn noch kein Nachname festgelegt wurde. |
JSON-String | "Jones" |
user_timezone |
Nein | Wenn Sie Nutzerspezifische Zeitzonen aktiviert haben, legen Sie den Wert der Option Betrachterzeitzone im Drop-down-Menü Zeitzone im eingebetteten Design oder Dashboard fest. Dieser Parameter ändert nicht direkt die Zeitzone, in der der Inhalt angezeigt wird. Der Nutzer muss im Drop-down-Menü die gewünschte Zeitzone auswählen. Gültige Werte finden Sie auf der Dokumentationsseite SSO-Einbettung der Zeitzone. Tipp für das Chatteam: Wenn Sie möchten, dass Ihr eingebetteter Inhalt standardmäßig auf die Zeitzone des Betrachters eingestellt wird, verwenden Sie eine der folgenden Methoden: ?query_timezone=user_timezone hinzu. Beispiel:/embed/dashboards/1?query_timezone=user_timezone |
JSON-String oder null | "US/Pacific" oder - null |
force_logout_login |
Ja | Wenn ein normaler Looker-Nutzer bereits in Looker angemeldet ist und sich ein in SSO eingebettetes Element ansieht, können Sie auswählen, ob: 1) das Element mit seinen aktuellen Anmeldedaten oder 2) mit abgemeldeten Anmeldedaten angemeldet und wieder angemeldet werden soll. |
Boolesch (wahr oder falsch) | true |
Alle vorherigen Parameter sind erforderlich. Es kann jedoch jeder Parameter mit einem leeren Wert in der Spalte „Wert erforderlich“ verwendet werden. Sie können beispielsweise group_ids []
oder user_attributes {}
verwenden.
Signatur
Führen Sie die folgenden Schritte aus, 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 Zeit
- Sitzungsdauer
- Externe Nutzer-ID
- Berechtigungen
- Modelle
- Gruppen-IDs
- Externe Gruppen-ID
- Benutzerattribute
- Zugriffsfilter (leerer Platzhalter erforderlich)
- Host, gefolgt von
- Alle anderen Werte außer Host- und URL einbetten als JSON formatieren
- Werte mit Zeilenumbrüchen verketten (
\n
) - HMAC zum Signieren des verketteten Strings mit dem Looker-Einbettungsgeheimnis
Codierung
Im letzten Schritt kodieren Sie die URL.
Vor der Codierung der URL könnte eine korrekt formatierte URL, die alle möglichen Parameter enthält, folgendermaßen 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, darf /embed//embed/
in Ihrer URL enthalten sein.
Nachdem Sie die URL codiert haben, sieht sie in etwa 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 create_sso_embed_url
verwenden
Die Looker API enthält den create_sso_embed_url
-Endpunkt, der eine Reihe von eingebetteten SSO-Parametern verwendet, die die URL des einzubettenden Inhalts enthalten, und eine vollständige, codierte, kryptografisch signierte SSO-URL zurückgibt.
Wenn Sie diesen API-Endpunkt auf einem Webserver verwenden möchten, muss sich der Webserver mit Administratorberechtigungen bei der Looker API authentifizieren können. Die Webserverdomain muss außerdem in der Zulassungsliste für eingebettete Domains aufgeführt sein.
Sie können auch den API Explorer verwenden, um eine SSO-URL zu generieren, die diesen Endpunkt verwendet. Sie können den API Explorer aus dem Looker Marketplace auf Ihrer Looker-Instanz installieren oder eine öffentliche Version im Entwicklerportal von Looker aufrufen. Nach der Generierung muss die SSO-URL genau kopiert werden und kann nur einmal verwendet werden. Andernfalls schlägt sie fehl. Der API Explorer ist auch nützlich, um eine SSO-URL zu generieren und sie zur Fehlerbehebung mit einer manuell erstellten SSO-URL zu vergleichen.
Weitere Informationen zur Looker API finden Sie auf der Seite Erste Schritte mit der Looker API.
Einbettungs-URL testen
Um die finale URL zu testen, fügen Sie sie auf der Seite Einbetten im Abschnitt Admin von Looker in den Einbettungs-URI ein. Mit dieser Option können Sie zwar nicht sehen, ob die von Ihnen beabsichtigten Daten und Berechtigungen korrekt eingerichtet wurden, sie können aber prüfen, ob Ihre Authentifizierung ordnungsgemäß funktioniert.