Signierte Einbettung mit Looker

1. Hinweis

Mit der signierten Einbettung können Sie Ihren Nutzern private eingebettete Looks, Visualisierungen, explorative Datenanalysen oder Dashboards präsentieren, ohne dass sie einen separaten Looker-Log-in benötigen. Stattdessen werden Nutzer über Ihre eigene Anwendung authentifiziert.

Für die signierte Einbettung müssen Sie zuerst eine spezielle Looker-URL erstellen, 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 von Looker bereitgestellten geheimen Schlüssel.

Voraussetzungen

  • Sie haben eine aktive Looker-Instanz.
  • Administrator Ihrer Looker-Instanz sein

Lerninhalte

  • Looker-Instanz für signiertes Einbetten einrichten
  • Geheimen Schlüssel generieren
  • Welche Informationen Sie für die Aufnahme in Ihre signierte Einbettungs-URL benötigen
  • Signierte Einbettungs-URL generieren
  • Eingebettetes Element in die Anwendung einfügen

2. Geeignetes Looker-Hosting

In einigen Browsern ist standardmäßig eine Sicherheitsrichtlinie festgelegt, die Drittanbieter-Cookies blockiert. Dadurch funktioniert das signierte Einbetten nicht. Für dieses Codelab ist die einfachste Möglichkeit, dieses Problem zu beheben, Drittanbieter-Cookies vorübergehend in Ihrem Browser zuzulassen:

In einer Produktionsumgebung müssen Sie eine der folgenden Strategien für Drittanbieter-Cookies auswählen:

  • Platzieren Sie sowohl Ihre Looker-Instanz als auch die Anwendung(en), in denen Sie signiertes Einbetten verwenden, in derselben Domain. Ihre Looker-Instanz befindet sich beispielsweise unter looker.mycompany.com, während sich Ihre signierte Einbettungswebsite unter analytics.mycompany.com befindet.
  • Aktivieren Sie die Funktion Cookieless Embed. Dadurch können Browser, die Drittanbieter-Cookies blockieren, die Authentifizierung über verschiedene Domains hinweg durchführen. Für diese Option ist eine zusätzliche Konfiguration erforderlich, die in der Looker-Dokumentation unter Cookieless embedding beschrieben wird.

3. Secret-Schlüssel generieren

Zum Erstellen einer signierten Einbettungs-URL benötigen Sie einen geheimen Schlüssel von Looker. Anleitung:

  1. Rufen Sie in Looker im Bereich Admin die Seite Einbetten auf.
  2. Wählen Sie im Drop-down-Menü SSO-Authentifizierung einbetten die Option Aktiviert und dann Aktualisieren aus.
  3. Klicken Sie im Bereich Einbettungs-Secret auf die Schaltfläche Secret zurücksetzen, um Ihr Einbettungs-Secret zu generieren.

Kopieren Sie dieses Secret an einen sicheren Ort, da Sie es nicht mehr aus Looker abrufen können, ohne es zurückzusetzen. Durch das Zurücksetzen des Schlüssels werden alle Einbettungen, in denen der alte Schlüssel verwendet wurde, unterbrochen.

4. Eingaben für die signierte Einbettungs-URL erfassen

Zum Erstellen einer signierten Einbettungs-URL benötigen Sie die folgenden Informationen.

URL der anzuzeigenden Daten

Rufen Sie die URL des Looks, Explores, der Visualisierung einer Abfrage oder des Dashboards ab, das Sie einbetten möchten. Entfernen Sie dann die Domain und setzen Sie /embed vor den Pfad.

Beispiel: https://instance_name.cloud.looker.com/looks/4 würde zu /embed/looks/4 werden.

Oder https://instance_name.cloud.looker.com/explore/my_model/my_explore würde zu /embed/explore/my_model/my_explore werden.

Berechtigungen, die der eingebettete Nutzer haben soll

Wählen Sie die Berechtigungen aus, die der eingebettete Nutzer haben soll. Relevante Berechtigungen für das signierte Einbetten finden Sie auf der Looker-Dokumentationsseite Signiertes Einbetten.

Für dieses Codelab sind die folgenden Berechtigungen wahrscheinlich die Mindestanforderungen:

  • access_data
  • see_lookml_dashboards
  • see_looks
  • see_user_dashboards
  • explore

Wenn Sie testen möchten, ob Nutzer in einem Embed Inhalte ansehen und speichern können, sollten Sie Folgendes in Betracht ziehen:

  • save_content
  • embed_browse_spaces
  • embed_save_shared_space

Modellzugriff, den der eingebettete Nutzer haben soll

Wählen Sie die Looker-Modelle aus, auf die der eingebettete Nutzer Zugriff haben soll. Der Nutzer sollte mindestens Zugriff auf das Modell haben, das dem Look, Explore, der Visualisierung der Abfrage oder dem Dashboard zugrunde liegt, das Sie anzeigen möchten.

Nutzerattribute, die der eingebettete Nutzer haben soll

Wählen Sie die Nutzerattribute aus, die der eingebettete Nutzer haben soll. Für dieses Codelab ist es möglicherweise nicht erforderlich, Nutzerattribute hinzuzufügen.

Gruppen, die der eingebettete Nutzer haben soll

Legen Sie fest, zu welchen Gruppen-IDs (nicht Gruppennamen) der Nutzer ggf. gehören soll. Für dieses Codelab ist es möglicherweise nicht erforderlich, Gruppen hinzuzufügen.

Nutzer-ID und Gruppe Ihres Unternehmens

Für signierte eingebettete Looker-URLs müssen Sie für jeden Nutzer in Ihrer Anwendung, der ein eingebettetes Looker-Element aufruft, eine eindeutige Kennung angeben. In Looker wird diese ID als „externe Nutzer-ID“ bezeichnet. Sie kann ein beliebiger String sein.

Falls relevant, können Sie auch eine „externe Gruppen-ID“ angeben. Dies ist eine eindeutige Kennung für die Gruppe, zu der der Nutzer in Ihrer Anwendung gehört.

5. Script zum Generieren von URLs auswählen

Um eine gültige signierte Einbettungs-URL zu erstellen, müssen Sie Code verwenden, damit Sie die URL mit Ihrem geheimen Schlüssel richtig codieren und andere sicherheitsrelevante Elemente generieren können.

Glücklicherweise sind im GitHub-Repository looker_embed_sso_examples von Looker mehrere Beispielskripts in verschiedenen Programmiersprachen verfügbar. Wählen Sie das für Sie relevante Skript aus und kopieren Sie es in Ihre Entwicklungsumgebung.

6. Daten eingeben und Skript ausführen

Das von Ihnen ausgewählte Skript zur URL-Generierung enthält Variablen oder ein Objekt, in das Sie alle zuvor erhobenen Informationen einfügen können. Außerdem finden Sie Beispiele dafür, wie diese Informationen dargestellt werden sollten:

Skriptname

Ungefähre Anzahl der Zeilen für Ihre Eingabe

LookerEmbedClientExample.java

15–28

csharp_example.cs

18–35

go_example.go

193–202

node_example.js

87–104

python_example.py

103–111

ruby_example.rb

88–101

sso_embed.php

14–27

Nachdem Sie die Beispiele durch die von Ihnen erhobenen Daten ersetzt haben, führen Sie das Skript aus, um die signierte Einbettungs-URL zu generieren. Notieren Sie sich die URL für den nächsten Schritt.

7. URL testen

Wenn Sie die finale URL testen möchten, fügen Sie sie in Looker im Bereich Admin auf der Seite Einbetten in das Embed URI Validator ein. Mit dieser Funktion kann zwar nicht geprüft werden, ob die von Ihnen vorgesehenen Daten und Berechtigungen richtig eingerichtet wurden, aber es lässt sich damit bestätigen, dass Ihre Authentifizierung ordnungsgemäß funktioniert.

8. URL in einen iFrame einbetten

Binden Sie schließlich Ihren Look, Ihr Explore, Ihre Abfragevisualisierung oder Ihr Dashboard in Ihre Anwendung ein, indem Sie die generierte URL dem Attribut src eines iframe hinzufügen. Fügen Sie das iFrame in Ihre Anwendung oder Testumgebung ein.

Bei Bedarf können Sie mit dem iFrame über JavaScript interagieren. Verwenden Sie dazu die eingebetteten JavaScript-Ereignisse von Looker.

9. Weitere Informationen

Die Funktion für signierte Einbettung von Looker sollte sorgfältig konfiguriert werden, damit eingebettete Nutzer nur die gewünschte Datensichtbarkeit und die gewünschten Berechtigungen haben. Bitte beachten Sie Folgendes:

  • Die Dokumentationsseite Signiertes Einbetten von Looker enthält detaillierte Informationen dazu, wie eine signierte Einbettungs-URL generiert werden sollte, sowie alle verfügbaren Konfigurationsoptionen.
  • Auf der Dokumentationsseite Best Practices für die Sicherheit von eingebetteten Analysen finden Sie eine Anleitung zum sicheren Konfigurieren von signierten Einbettungen.
  • Die signierte Einbettung wird häufig von Looker-Kunden verwendet, um Daten für ihre eigenen Kunden zu präsentieren. Dabei soll verhindert werden, dass Kunden aus verschiedenen Unternehmen oder Gruppen voneinander wissen. In diesem Fall empfehlen wir dringend, Looker als geschlossenes System zu konfigurieren, das manchmal auch als „Multitenant-Installation“ bezeichnet wird.
  • Die Funktion zum signierten Einbetten ist über die Looker API verfügbar.