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. Sofern nicht anders angegeben, wird in den Tipps auf dieser Seite davon ausgegangen, dass Sie die signierte Einbettungs-URL mit einem Script generieren, das dem im GitHub-Repository für Einbettungsbeispiele von Looker ähnelt.
Allgemeine Schritte
Bevor du mit dem Einbetten beginnst, musst du im Bereich Verwaltung ein Embed-Secret generieren und dafür sorgen, dass deine eingebetteten Inhalte nicht nur im Entwicklungsmodus, sondern auch im Produktionsmodus funktionieren.
Wenn du Administratorzugriff hast, kannst du sudo als Nutzer verwenden, der den Code eingebettet hat, um zu prüfen, ob deine Inhalte funktionieren. Wenn der Fehler Oops, we can't find that page
angezeigt wird, liegt das Problem höchstwahrscheinlich an Berechtigungen oder dem Inhaltszugriff und nicht an einem Authentifizierungsproblem. Wenn der Nutzer für die Einbettung nicht auf der Seite Nutzer im Looker-Admin-Bereich angezeigt wird, wurde er nicht erstellt und die Einbettungs-URL funktioniert nicht. 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.
Im Weiteren werden auf dieser Seite Fehler und andere Probleme beschrieben, die möglicherweise auftreten, sowie Schritte zur Behebung.
Ich werde entweder auf eine Anmeldeseite oder auf eine Seite mit der Meldung „Einmalanmeldung fehlgeschlagen“ weitergeleitet.
Wenn du zur Anmeldeseite oder zu einer Seite mit dem Fehler Single sign on failure. Please contact an adinistrator.
weitergeleitet wirst, funktioniert die signierte Einbettungsauthentifizierung in der Regel nicht richtig.
Erstellen Sie zuerst eine neue signierte Einbettungs-URL und testen Sie sie im URI-Validator für eingebettete Inhalte auf der Seite Eingebettete Inhalte im Bereich Verwaltung von Looker. Der Embed-URI-Validator 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 Bereich Verwaltung von Looker befinden und der Embed URI Validator nicht angezeigt wird, wurde die signierte Einbettung noch nicht aktiviert. Du musst die signierte Einbettung aktivieren.
Ich erhalte die Fehlermeldung 'signature param' failed to authenticate
.
Wenn dieser Fehler angezeigt wird, funktioniert die von Ihrem Script generierte Signatur nicht wie erwartet. In den folgenden Abschnitten finden Sie mögliche Lösungen:
Stimmen die Secrets für das Einbetten ü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 sich nicht sicher sind, wählen Sie Secret zurücksetzen aus, um ein neues Secret zu generieren und Ihrem Script hinzuzufügen. Wenn du den Schlüssel zurücksetzt, funktionieren alle Einbettungen, für die der vorherige Schlüssel verwendet wurde, nicht mehr.
Verwende den EndpunktCreate Signed Embed Url
, um die Embed-URL zu erstellen. Gib das Secret in deinem Script für diesecret_id
im Textkörper des Aufrufs 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 Seite Signed embedding (Signierte Einbettung) dokumentiert.
Der Signaturstring sollte vor der Codierung 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, müssen 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.
Vergleiche dein Script mit unseren Scriptbeispielen, um zu prüfen, ob alle erforderlichen Schritte ausgeführt werden und ob die Signatur die richtige Verschlüsselung verwendet.
Ich erhalte die Fehlermeldung This request includes invalid params: ["embed_domain"]
.
Bevor du mit der Fehlerbehebung beginnst, beachte bitte, dass der Parameter embed_domain
nur dann erforderlich ist, wenn dein Script JavaScript-Ereignislistener verwendet. Dies ist für eine grundlegende signierte Einbettungsimplementierung normalerweise nicht erforderlich. 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 von 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 EndpunktCreate Signed Embed Url
verwenden, sollte der Parameterembed_domain
am Ende destarget_url
platziert werden.
Ich erhalte die Fehlermeldung '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. Dieser Fehler wird daher 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 einer Uh-Oh, Something went wrong
-Fehlerseite weitergeleitet.
Wenn dieser Fehler angezeigt wird, wenden Sie sich bitte an den Looker-Support, um das Problem zu beheben.
Ich werde auf eine Seite mit der Fehlermeldung 401 You are not authenticated to view this page.
weitergeleitet.
Wenn Sie alle relevanten Schritte zur Fehlerbehebung ausprobiert haben und das 401-Problem 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 Einstellung Websiteübergreifendes Tracking verhindern in Safari und die Einstellung Drittanbieter-Cookies im Inkognitomodus blockieren in Chrome standardmäßig aktiviert.
Wenn in Ihrer Anwendung Looker-Inhalte eingebettet sind und der Domainname Ihrer Looker-Instanz auf company.looker.com
endet, authentifiziert der Browser den eingebetteten Iframe nicht über Domains hinweg, 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? Weitere Informationen finden Sie auf der Seite mit Best Practices.
Wenn Sie Ihrer Looker-Instanz eine benutzerdefinierte Domain 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.
In Chrome muss außerdem für jedes Sitzungscookie mit dem Flag samesite=none
auch secure
angegeben werden. Looker sendet kein secure
-Signal, wenn Ihre Looker-Instanz kein --ssl-provided-externally-by=<s>
Start-Flag hat. Achten Sie also darauf, dass dieses Start-Flag konfiguriert ist.
Ich habe immer noch Probleme. Was kann ich jetzt tun?
Wenn nach der Umsetzung der Vorschläge auf dieser Seite weiterhin Probleme auftreten, wenden Sie sich an Ihren Looker-Ansprechpartner oder erstellen Sie ein Ticket beim Looker-Support.