Risolvere i problemi relativi all'autenticazione dell'embed firmato

La risoluzione dei problemi di autenticazione può essere difficile quando utilizzi l'incorporamento firmato per i tuoi contenuti di Looker. Esistono diversi approcci che puoi adottare per cercare di diagnosticare i problemi e ne sceglierai uno in base alla destinazione dei reindirizzamenti degli utenti. I suggerimenti in questa pagina presuppongono che tu stia generando l'URL incorporato firmato utilizzando uno script simile a quelli nel repository GitHub di esempi di incorporamento di Looker, se non diversamente specificato.

Cose generali da provare per prime

Prima di iniziare l'incorporamento, assicurati che il segreto di incorporamento sia stato generato nel pannello Amministrazione e che i contenuti incorporati funzionino in modalità di produzione, non solo in modalità di sviluppo.

Se disponi delle autorizzazioni di amministratore, utilizza sudo come utente incorporato per verificare che i contenuti funzionino. Se ricevi l'errore Oops, we can't find that page, il problema riguarda molto probabilmente le autorizzazioni o l'accesso ai contenuti e non è correlato a un problema di autenticazione. Se l'utente incorporato non viene visualizzato nella pagina Utenti del pannello Amministrazione di Looker, l'utente non è stato creato e l'URL di incorporamento non funziona. Puoi provare a risolvere il problema utilizzando alcuni dei suggerimenti e delle risorse elencati in questa pagina.

Se la tua istanza è self-hosted, assicurati che il server client possa raggiungere il server Looker e, se i dati tra il client e il server vengono trasmessi su internet pubblico, assicurati che venga utilizzato SSL (HTTPS).

Il resto di questa pagina descrive gli errori e altri problemi che potresti riscontrare, nonché i passaggi per risolverli.

Vengo reindirizzato a una pagina di accesso o a una pagina "Errore Single Sign-On"

Se viene eseguito il reindirizzamento alla pagina di accesso o a una pagina con l'errore Single sign on failure. Please contact an adinistrator., in genere significa che l'autenticazione dell'incorporamento firmato non funziona correttamente.

Innanzitutto, genera un nuovo URL di incorporamento firmato e testalo in Embed URI Validator nella pagina Incorpora del pannello Amministrazione di Looker. A volte, il validatore URI di incorporamento può rivelare informazioni preziose sul motivo per cui si verifica un errore.

Il validatore URI incorporato viene visualizzato come previsto?

Se ti trovi nella pagina Incorpora del pannello Amministrazione di Looker e il validatore URI di incorporamento non viene visualizzato nella pagina, significa che l'incorporamento firmato non è ancora stato attivato. Dovrai attivare l'incorporamento firmato.

Ricevo l'errore 'signature param' failed to authenticate

Se visualizzi questo errore, significa che la firma generata dallo script non funziona come previsto. Per possibili soluzioni, consulta le seguenti sezioni:

I segreti incorporati corrispondono?

Il segreto di incorporamento nell'istanza Looker deve essere identico al segreto di incorporamento firmato nello script di generazione dell'URL di incorporamento firmato. Se non hai la certezza che sia vero, seleziona Reimposta segreto per generare un nuovo segreto e aggiungerlo allo script. Il ripristino della chiave interromperà tutti gli incorporamenti che utilizzavano la chiave precedente.

Prova a utilizzare l'endpoint Create Signed Embed Url per creare l'URL di incorporamento, specificando il segreto nello script per secret_id nel corpo della chiamata. La risposta ti comunicherà se il secret che stai utilizzando non è valido.

La stringa della firma è nell'ordine corretto?

I parametri di incorporamento nella stringa della firma devono essere nell'ordine corretto nello script di generazione dell'URL. L'ordine corretto è documentato nella pagina della documentazione Incorporamento firmato.

La stringa della firma, una volta stampata, dovrebbe avere questo aspetto prima della codifica:

  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"}
  {}

Dopo aver firmato la stringa di firma con il segreto di incorporamento, assicurati che i parametri nell'URL finale corrispondano a quelli specificati nella stringa di firma. Assicurati che i caratteri speciali come + e / siano codificati nei parametri URL (ad esempio, + potrebbe essere interpretato come uno spazio se non è codificato correttamente) e che non ci siano interruzioni di riga nell'URL incorporato firmato, che potrebbero non essere rilevate dopo la codifica.

Confronta il tuo script con i nostri esempi di script per verificare se lo script segue tutti i passaggi corretti e se la firma utilizza la crittografia corretta.

Ricevo l'errore This request includes invalid params: ["embed_domain"]

Prima di iniziare a risolvere il problema relativo a questo errore, tieni presente che il parametro embed_domain è necessario solo se lo script utilizza listener di eventi JavaScript, il che in genere non è un requisito per un'implementazione di base dell'incorporamento firmato. Se la tua applicazione non deve rilevare eventi JavaScript, l'opzione più semplice è eliminare completamente il parametro embed_domain.

Se devi utilizzare gli eventi JavaScript nell'applicazione incorporata, controlla lo script di generazione dell'URL per vedere dove viene aggiunto il parametro embed_domain. L'errore di solito indica che il parametro embed_domain è stato inserito per errore come parametro di incorporamento firmato anziché direttamente all'interno di embed_url. Lo script non formatta correttamente il parametro embed_domain a meno che non faccia effettivamente parte di embed_url e deve essere aggiunto dopo l'URL incorporato e prima di qualsiasi parametro.

Ecco come dovrebbe apparire quando il parametro embed_domain è specificato correttamente nello script:

  embed_url: "/embed/dashboards/3?embed_domain=https://company.com"
Se utilizzi l'endpoint Create Signed Embed Url, il parametro embed_domain deve essere inserito alla fine di target_url.

Ricevo l'errore 'nonce' param already used this hour

Il valore del parametro nonce non deve essere ripetuto nella stessa ora e deve contenere meno di 255 caratteri. Pertanto, vedrai questo errore se stai testando un URL a cui è già stato eseguito l'accesso. Assicurati di generare un nuovo URL di incorporamento che non sia ancora stato caricato nel browser e che il nonce cambi e non venga riutilizzato.

Vengo reindirizzato a un errore Uh-Oh, Something went wrong

Se visualizzi questo errore, contatta l'assistenza Looker per ricevere aiuto nella diagnosi del problema.

Vengo reindirizzato a una pagina con il messaggio di errore 401 You are not authenticated to view this page.

Se hai provato tutti i passaggi per la risoluzione dei problemi applicabili e il problema 401 persiste, è probabile che il browser stia bloccando i cookie di terze parti. La maggior parte dei browser sta diventando più restrittiva e utilizzerà per impostazione predefinita una norma sui cookie che blocca questi cookie. Ad esempio, l'impostazione Impedisci monitoraggio cross-site di Safari è attiva per impostazione predefinita, così come l'impostazione Blocca cookie di terze parti in modalità di navigazione in incognito di Chrome.

Se la tua applicazione incorpora contenuti di Looker e il nome di dominio della tua istanza di Looker termina con company.looker.com, il browser non autenticherà l'iframe incorporato nei domini a meno che non vengano modificate le impostazioni della privacy dei cookie del browser.

Istanze ospitate su Looker

Gli amministratori ospitati da Looker che non vogliono che i propri utenti attivino manualmente i cookie di terze parti nei browser dovranno modificare il nome di dominio dell'istanza ospitata da Looker. Ad esempio, le istanze ospitate da Looker in genere hanno il formato https://<hostname>.<subdomain>.<domain>.com. Se il nome di dominio di Looker viene modificato, Looker non verrà più considerato un dominio di terze parti. Per saperne di più, consulta la pagina delle best practice Come modificare l'URL di un'istanza di Looker.

Se ti interessa aggiungere un dominio personalizzato per la tua istanza di Looker, contatta l'assistenza Looker per configurare la configurazione DNS necessaria.

Istanze self-hosted

Se esegui l'hosting autonomo della tua istanza di Looker, assicurati che l'applicazione che utilizza l'incorporamento firmato si trovi nello stesso dominio di base dell'istanza di Looker modificando le voci DNS per l'istanza di Looker.

Chrome richiede inoltre che qualsiasi cookie di sessione con il flag samesite=none specifichi anche secure. Looker non segnalerà secure se la tua istanza di Looker non è fornita di un --ssl-provided-externally-by=<s> flag di avvio, quindi assicurati che questo flag di avvio sia configurato.

Ho ancora problemi. Cosa devo fare?

Se continui a riscontrare problemi dopo aver provato i suggerimenti in questa pagina, contatta il tuo contatto Looker o visita l'assistenza Looker per aprire un ticket.