Fehlerbehebung bei Authentifizierungsfehlern für signierte Einbettungen

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

Allgemeine erste Schritte

Bevor Sie mit dem Einbetten beginnen, müssen Sie dafür sorgen, dass Ihr Einbettungs-Secret im Bereich Administrator generiert wurde und dass Ihre eingebetteten Inhalte im Produktionsmodus und nicht nur im Entwicklermodus funktionieren.

Wenn Sie Administratorberechtigungen haben, können Sie sudo als eingebetteter Nutzer ausführen, um zu prüfen, ob Ihre Inhalte funktionieren. Wenn Sie den Fehler Oops, we can't find that page erhalten, liegt das Problem höchstwahrscheinlich an Berechtigungen oder dem Zugriff auf Inhalte und nicht an einem Authentifizierungsproblem. Wenn der eingebettete Nutzer nicht auf der Seite Nutzer im Admin-Bereich von Looker angezeigt wird, wurde der Nutzer nicht erstellt und die Einbettungs-URL schlägt fehl. Sie können versuchen, das Problem mithilfe der Vorschläge und Ressourcen auf dieser Seite zu beheben.

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

Im Weiteren werden auf dieser Seite Fehler und andere Probleme beschrieben, die auftreten können, sowie Schritte zur Behebung.

Ich werde entweder zu einer Anmeldeseite oder zu einer Seite mit der Meldung „Einmalanmeldung fehlgeschlagen“ weitergeleitet.

Wenn Sie zur Anmeldeseite oder zu einer Seite mit dem Fehler Single sign on failure. Please contact an adinistrator. weitergeleitet werden, deutet das in der Regel darauf hin, dass die Authentifizierung für signierte Einbettungen nicht richtig funktioniert.

Generieren Sie zuerst eine neue signierte Einbettungs-URL und testen Sie sie im Einbettungs-URI-Validator auf der Seite Einbetten im Admin-Bereich von Looker. Der Validator für eingebettete URIs kann manchmal wertvolle Informationen dazu liefern, warum ein Fehler auftritt.

Wird der Embed-URI-Validator wie erwartet angezeigt?

Wenn Sie sich auf der Seite Einbetten im Admin-Bereich von Looker befinden und der Validator für eingebettete URIs nicht auf der Seite angezeigt wird, deutet dies darauf hin, dass die signierte Einbettung noch nicht aktiviert wurde. Sie müssen die signierte Einbettung aktivieren.

Ich erhalte den Fehler 'signature param' failed to authenticate

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

Stimmen die Einbettungs-Secrets überein?

Das Einbettungs-Secret in Ihrer Looker-Instanz muss mit dem signierten Einbettungs-Secret in Ihrem Script zum Generieren signierter Einbettungs-URLs identisch sein. Wenn Sie sich nicht sicher sind, ob das stimmt, wählen Sie Privatadresse zurücksetzen aus, um eine neue Privatadresse zu generieren und sie Ihrem Skript hinzuzufügen. Durch das Zurücksetzen des Schlüssels werden alle Einbettungen, die den vorherigen Schlüssel verwendet haben, unterbrochen.

Verwenden Sie den Endpunkt Create Signed Embed Url, um die Einbettungs-URL zu erstellen. Geben Sie das Secret in Ihrem Script für secret_id im Anfragetext an. In der Antwort wird angegeben, 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 Signiertes Einbetten 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 Sie den Signaturstring mit Ihrem Einbettungs-Secret signiert haben, müssen die Parameter in der finalen URL mit den im Signaturstring angegebenen Parametern übereinstimmen. Achten Sie darauf, dass Sonderzeichen wie + und / in den URL-Parametern codiert sind. Andernfalls könnte das + beispielsweise als Leerzeichen interpretiert werden. Außerdem darf die signierte Einbettungs-URL keine Zeilenumbrüche enthalten, die nach der Codierung möglicherweise übersehen werden.

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

Ich erhalte den Fehler This request includes invalid params: ["embed_domain"]

Bevor Sie mit der Fehlerbehebung beginnen, beachten Sie, dass der Parameter embed_domain nur erforderlich ist, wenn in Ihrem Skript JavaScript-Ereignis-Listener verwendet werden. Dies ist in der Regel keine Voraussetzung für eine einfache Implementierung einer signierten Einbettung. Wenn Ihre Anwendung nicht auf JavaScript-Ereignisse warten muss, ist es am einfachsten, den Parameter embed_domain vollständig zu entfernen.

Wenn Sie JavaScript-Ereignisse in Ihre eingebettete Anwendung einfügen müssen, sehen Sie im Skript zur URL-Generierung nach, wo der Parameter embed_domain hinzugefügt wird. Dieser Fehler bedeutet in der Regel, dass der Parameter embed_domain versehentlich als signierter Einbettungsparameter anstelle direkt im embed_url platziert wurde. Das Script formatiert den Parameter embed_domain nur dann richtig, wenn er tatsächlich Teil von embed_url ist. Er sollte nach der Einbettungs-URL und vor allen Parametern eingefügt werden.

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

  embed_url: "/embed/dashboards/3?embed_domain=https://company.com"
Wenn Sie den Endpunkt Create Signed Embed Url verwenden, sollte 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 nicht innerhalb derselben Stunde wiederholt werden und muss weniger als 255 Zeichen enthalten. Dieser Fehler wird also angezeigt, wenn Sie eine URL testen, auf die bereits zugegriffen wurde. Achten Sie darauf, dass Sie eine neue Einbettungs-URL generieren, die noch nicht in Ihrem Browser geladen wurde, und dass sich die 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 das Problem diagnostiziert werden kann.

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

Wenn Sie alle anwendbaren Schritte zur Fehlerbehebung ausprobiert haben und das Problem 401 weiterhin besteht, blockiert Ihr Browser wahrscheinlich Cookies von Drittanbietern. Die meisten Browser werden immer restriktiver und verwenden standardmäßig eine Cookie-Richtlinie, die diese Cookies blockiert. So ist beispielsweise die Safari-Einstellung Website-Tracking verhindern standardmäßig aktiviert, ebenso wie die Chrome-Einstellung Drittanbieter-Cookies im Inkognitomodus blockieren.

Wenn in Ihrer Anwendung Looker-Inhalte eingebettet sind und der Domainname Ihrer Looker-Instanz auf company.looker.com endet, authentifiziert der Browser das eingebettete iFrame nicht domainübergreifend, sofern die Cookie-Datenschutzeinstellungen des Browsers nicht geändert werden.

Von Looker gehostete Instanzen

Looker-Administratoren, die nicht möchten, dass ihre Nutzer Drittanbieter-Cookies in ihren Browsern manuell aktivieren müssen, müssen den Domainnamen der Looker-gehosteten Instanz ändern. Looker-gehostete Instanzen haben beispielsweise normalerweise das Format https://<hostname>.<subdomain>.<domain>.com. Wenn der Looker-Domainname geändert wird, gilt Looker nicht mehr als Drittanbieterdomain. Weitere Informationen finden Sie auf der Seite mit Best Practices URL einer Looker-Instanz ändern.

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, müssen Sie dafür sorgen, dass sich Ihre Anwendung, die signiertes Einbetten verwendet, in derselben Basisdomain wie Ihre Looker-Instanz befindet. Ändern Sie dazu die DNS-Einträge für Ihre Looker-Instanz.

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

Ich habe weiterhin Probleme. Was kann ich tun?

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