Fehlerbehebung bei der Authentifizierung von signierten Einbettungen

Die Fehlerbehebung bei Authentifizierungsfehlern kann schwierig sein, wenn Sie für Ihre Looker-Inhalte signierte Einbettungen verwenden. Es gibt verschiedene Ansätze, um Probleme zu diagnostizieren. Welchen Ansatz Sie wählen, hängt davon ab, wohin Ihre Nutzer weitergeleitet werden. Bei den Tipps auf dieser Seite wird davon ausgegangen, dass Sie Ihre signierte Einbettungs-URL mit einem Script generieren, das dem GitHub-Repository für Einbettungsbeispiele von Looker ähnelt, sofern nicht anders angegeben.

Allgemeine Schritte

Vergewissern Sie sich vor der Einbettung, dass Ihr Einbettungs-Secret im Admin-Bereich generiert wurde und ob Ihre eingebetteten Inhalte im Produktionsmodus und nicht nur im Entwicklungsmodus funktionieren.

Wenn Sie Administratorberechtigungen haben, verwenden Sie sudo für den eingebetteten Nutzer, um zu prüfen, ob Ihre Inhalte funktionieren. Wenn der Fehler Oops, we can't find that page angezeigt wird, bezieht sich das Problem höchstwahrscheinlich auf die Berechtigungen oder den Zugriff auf Inhalte und nicht auf ein Authentifizierungsproblem. Wenn der eingebettete Nutzer im Looker-Bereich Admin nicht auf der Seite Nutzer angezeigt wird, wurde der Nutzer nicht erstellt und die Einbettungs-URL schlägt fehl. Sie können versuchen, das Problem mithilfe der auf dieser Seite aufgeführten Vorschläge und Ressourcen zu beheben.

Wenn Ihre Instanz selbst gehostet wird, muss der Clientserver den Looker-Server erreichen können. Wenn die Daten zwischen dem Client und dem Server über das öffentliche Internet übertragen werden, muss SSL (HTTPS) verwendet werden.

Der Rest dieser Seite beschreibt Fehler und andere Probleme, die auftreten können, sowie Schritte zu deren Behebung.

Ich werde entweder auf eine Anmeldeseite weitergeleitet oder der Fehler bei der Einmalanmeldung (SSO) tritt auf. Seite

Wenn du zur Anmeldeseite oder zu einer Seite mit dem Fehler Single sign on failure. Please contact an adinistrator. weitergeleitet wirst, bedeutet dies in der Regel, dass die signierte Einbettungsauthentifizierung nicht richtig funktioniert.

Generieren Sie zuerst eine neue signierte Einbettungs-URL und testen Sie sie im Looker-Bereich Admin auf der Seite Embed (Einbetten) mit dem Tool Embed URI Validator. Manchmal liefert der Embed URI Validator wertvolle Informationen zu den Ursachen eines Fehlers.

Wird der URI-Validator für Einbettungen wie erwartet angezeigt?

Wenn Sie sich im Looker-Bereich Admin auf der Seite Einbetten befinden und der URI Validator zum Einbetten nicht angezeigt wird, bedeutet das, dass die signierte Einbettung noch nicht aktiviert wurde. Du musst die signierte Einbettung aktivieren.

Ich erhalte die Fehlermeldung 'signature param' failed to authenticate.

Wenn dieser Fehler angezeigt wird, funktioniert die von Ihrem Skript generierte Signatur nicht wie erwartet. In den folgenden Abschnitten finden Sie mögliche Lösungen:

Stimmen die eingebetteten Secrets überein?

Das Secret für die Einbettung in Ihrer Looker-Instanz muss mit dem signierten Secret für die Einbettung in Ihrem Script zum Generieren signierter Einbettungs-URLs identisch sein. Wenn Sie nicht sicher sind, ob dies der Fall ist, wählen Sie Secret zurücksetzen aus, um ein neues Secret zu generieren und dem Script hinzuzufügen. Wenn du den Schlüssel zurücksetzt, funktionieren alle Einbettungen, für die der vorherige Schlüssel verwendet wurde, nicht mehr.

Versuche, die Einbettungs-URL mit dem Endpunkt Create Signed Embed Url zu erstellen. Gib im Text des Aufrufs das Secret für die secret_id an. In der Antwort wird angezeigt, ob das verwendete Secret ungültig ist.

Ist der Signaturstring in der richtigen Reihenfolge?

Die Einbettungsparameter im Signaturstring müssen im URL-Generierungsskript in der richtigen Reihenfolge stehen. Die richtige Reihenfolge ist auf der Dokumentationsseite Signierte Einbettung beschrieben.

Der Signaturstring sollte vor der Codierung in etwa so aussehen:

  company_name.looker.com
  /login/embed/embed%2Fdashboards%2F123
  "ac786cbc06162b1edde3a8b35920a93e"
  15852443573600
  "test_external_user_id"
  ["access_data","see_user_dashboards"]
  ["test_model"]
  []
  "test group space"
  {"test_user_attribute":"yes"}
  {}

Nachdem du den Signaturstring mit deinem Einbettungs-Secret signiert hast, musst du prüfen, ob die Parameter in der finalen URL mit den im Signaturstring angegebenen Parametern übereinstimmen. Achte darauf, dass Sonderzeichen wie + und / in den URL-Parametern codiert sind. Andernfalls wird das Zeichen + beispielsweise als Leerzeichen interpretiert. Außerdem dürfen in der signierten Embed-URL keine Zeilenumbrüche enthalten sein, da diese nach der Codierung übersehen werden könnten.

Vergleichen Sie Ihr Skript mit unseren Skriptbeispielen, um zu prüfen, ob es alle erforderlichen Schritte durchläuft und ob die Signatur die richtige Verschlüsselung verwendet.

Ich erhalte die Fehlermeldung This request includes invalid params: ["embed_domain"].

Bevor Sie mit der Fehlerbehebung dieses Fehlers beginnen, beachten Sie, dass der embed_domain-Parameter nur dann erforderlich ist, wenn Ihr Skript JavaScript-Ereignis-Listener verwendet, die für eine einfache signierte Einbettung in der Regel nicht erforderlich sind. Wenn Ihre Anwendung nicht auf JavaScript-Ereignisse warten muss, ist es am einfachsten, den Parameter embed_domain vollständig zu entfernen.

Wenn du JavaScript-Ereignisse in deiner eingebetteten Anwendung verwenden musst, sieh im URL-Generierungsskript nach, wo der Parameter embed_domain hinzugefügt wird. In der Regel bedeutet der Fehler, dass der embed_domain-Parameter versehentlich als signierter Einbettungsparameter statt direkt in embed_url platziert wurde. Der embed_domain-Parameter wird vom Script nur dann richtig formatiert, wenn er tatsächlich Teil der embed_url ist. Er sollte nach der Einbettungs-URL und vor allen anderen Parametern eingefügt werden.

So sollte es aussehen, wenn der Parameter embed_domain in Ihrem Script korrekt angegeben ist:

  embed_url: "/embed/dashboards/3?embed_domain=https://company.com"
Wenn Sie den Endpunkt Create Signed Embed Url verwenden, muss der Parameter embed_domain am Ende von target_url platziert werden.

Ich erhalte den Fehler 'nonce' param already used this hour

Der Wert des Parameters nonce darf innerhalb derselben Stunde nicht wiederholt werden und muss weniger als 255 Zeichen enthalten. Daher wird dieser Fehler angezeigt, wenn Sie eine URL testen, auf die bereits zugegriffen wurde. Achte darauf, dass du eine neue Einbettungs-URL generierst, die noch nicht in deinem Browser geladen wurde, und dass sich der Nonce ändert und nicht wiederverwendet wird.

Ich werde zu einem Uh-Oh, Something went wrong-Fehler weitergeleitet

Wenn dieser Fehler angezeigt wird, wenden Sie sich bitte an den Looker-Support, damit Sie das Problem diagnostizieren können.

Ich werde auf eine Seite mit der Fehlermeldung 401 weitergeleitet: You are not authenticated to view this page.

Wenn Sie alle entsprechenden Schritte zur Fehlerbehebung durchgeführt haben und das 401-Problem weiterhin besteht, blockiert Ihr Browser wahrscheinlich Drittanbieter-Cookies. Die meisten Browser werden restriktiver und verwenden standardmäßig eine Cookie-Richtlinie, die diese Cookies blockiert. So ist beispielsweise die Einstellung Websiteübergreifendes Tracking verhindern in Safari und die Einstellung Drittanbieter-Cookies im Inkognitomodus blockieren in Chrome standardmäßig aktiviert.

Wenn Ihre Anwendung Looker-Inhalte einbettet und der Domainname Ihrer Looker-Instanz auf company.looker.com endet, authentifiziert der Browser den eingebetteten iFrame nicht domainübergreifend, es sei denn, die Cookie-Datenschutzeinstellungen des Browsers werden geändert.

Von Looker gehostete Instanzen

Administratoren von Looker-gehosteten Instanzen, die nicht möchten, dass ihre Nutzer Drittanbieter-Cookies manuell in ihren Browsern aktivieren müssen, müssen den Domainnamen der Looker-gehosteten Instanz ändern. Beispielsweise haben von Looker gehostete Instanzen in der Regel das Format https://<hostname>.<subdomain>.<domain>.com. Wenn der Looker-Domainname geändert wird, wird Looker nicht mehr als Drittanbieterdomain betrachtet. Weitere Informationen finden Sie unter Was passiert, wenn sich die URL meiner Looker-Instanz ändert? finden Sie auf der Seite "Best Practices" weitere Informationen.

Wenn Sie eine benutzerdefinierte Domain für Ihre Looker-Instanz hinzufügen möchten, wenden Sie sich an den Looker-Support, um die erforderliche DNS-Konfiguration einzurichten.

Selbst gehostete Instanzen

Wenn Sie Ihre Looker-Instanz selbst hosten, achten Sie darauf, dass sich Ihre Anwendung mit signiertem Einbetten in derselben Basisdomain wie Ihre Looker-Instanz befindet. Ändern Sie dazu die DNS-Einträge für Ihre Looker-Instanz.

Für Chrome muss außerdem für jedes Sitzungscookie mit dem Flag samesite=none secure angegeben werden. Looker signalisiert secure nicht, wenn für Ihre Looker-Instanz kein --ssl-provided-externally-by=<s> Start-Flag angegeben ist. Achten Sie daher darauf, dass dieses Start-Flag konfiguriert ist.

Es treten immer noch Probleme auf. Was kann ich jetzt tun?

Wenn nach dem Ausprobieren der Vorschläge auf dieser Seite weiterhin Probleme auftreten, wenden Sie sich an Ihren Looker-Kontakt oder rufen Sie den Looker-Support auf, um ein Ticket zu erstellen.