L'incorporamento firmato è un modo per presentare Look, visualizzazioni, esplorazioni, dashboard o dashboard LookML private incorporate senza richiedere credenziali di accesso separate. Gli utenti verranno invece autenticati tramite la tua applicazione.
L'incorporamento firmato funziona creando un URL di Looker speciale che utilizzerai in un iframe. L'URL contiene le informazioni che vuoi condividere, l'ID dell'utente nel tuo sistema e le autorizzazioni che vuoi concedere all'utente. Dovrai quindi firmare l'URL con una chiave segreta fornita da Looker.
Per l'incorporamento pubblico, consulta la sezione Incorporamento pubblico con tag iframe della pagina della documentazione Condivisione, importazione e incorporamento pubblici dei Look.
Prima di poter utilizzare l'incorporamento firmato nell'istanza di Looker, un amministratore di Looker deve attivare l'incorporamento firmato nel pannello Amministratore di Looker e creare una chiave segreta di incorporamento. Per istruzioni, consulta la pagina della documentazione Introduzione all'incorporamento: attivazione dell'incorporamento firmato.
Hosting corretto per l'incorporamento firmato
Alcuni browser, ad esempio Safari o i browser con estensioni installate che bloccano gli annunci o i cookie di monitoraggio, utilizzano per impostazione predefinita una policy sui cookie che blocca i cookie di terze parti. Quando la funzionalità Incorporamento senza cookie è attiva, i browser che bloccano i cookie di terze parti possono autenticare gli utenti nell'iframe incorporato in domini diversi. L'autenticazione dell'incorporamento senza cookie richiede la configurazione lato server. Per esempi di configurazione, consulta la pagina della documentazione Incorporamento senza cookie.
Se la funzionalità Incorporamento senza cookie non è abilitata, Looker utilizza i cookie per l'autenticazione degli utenti. In questo caso, non è possibile tentare di autenticare l'iframe incorporato tra domini nei browser che bloccano i cookie di terze parti (a meno che l'utente non modifichi le impostazioni della privacy dei cookie del browser). Ad esempio, se vuoi incorporare informazioni su https://mycompany.com, devi assicurarti che Looker condivida lo stesso dominio, ad esempio https://analytics.mycompany.com. In questo caso, se Looker ospita la tua istanza, contatta l'assistenza di Looker per configurare il DNS necessario per abilitare l'utilizzo del dominio personalizzato. In questo modo, Looker potrà condividere lo stesso dominio dell'applicazione di incorporamento e utilizzare i cookie proprietari, che sono accettati per impostazione predefinita in tutti i browser.
Se hai un'istanza di Looker ospitata dal cliente, assicurati che l'applicazione che utilizzerà l'incorporamento firmato utilizzi lo stesso dominio dell'istanza di Looker.
Controllo della visibilità dei client con un sistema chiuso
In una configurazione di incorporamento firmato, è comune che gli utenti di Looker presentino i dati ai propri clienti, pur avendo clienti di aziende o gruppi diversi che non dovrebbero conoscersi. In questo scenario, per salvaguardare le informazioni private dei tuoi clienti, ti consigliamo vivamente di configurare Looker come sistema chiuso, chiamato anche installazione multi-tenant. In un sistema chiuso, i contenuti sono isolati per impedire agli utenti di gruppi diversi di avere informazioni sugli altri. Per questo motivo, ti consigliamo di attivare l'opzione Sistema chiuso prima di concedere l'accesso alla tua istanza a utenti esterni.
Per saperne di più, consulta le pagine della documentazione relative a progettazione e configurazione di un sistema di livelli di accesso e best practice per la sicurezza per l'analisi incorporata.
Generazione dell'URL di incorporamento firmato
Esistono diversi modi per generare l'URL di incorporamento firmato. Puoi utilizzare uno di questi metodi:
Puoi generare un URL di incorporamento firmato utilizzando l'opzione Ottieni URL di incorporamento nel menu con tre puntini della dashboard o nel menu a forma di ingranaggio Azioni di esplorazione di un Look o di un'esplorazione.
Utilizza l'endpoint Crea URL di incorporamento firmato dell'API Looker, come descritto più avanti in questo documento.
Utilizza l'SDK Embed di Looker.
Codifica l'URL di incorporamento firmato. Per creare l'URL corretto, dovrai scrivere un codice in modo da poter codificare correttamente l'URL con la tua chiave segreta e generare altri elementi relativi alla sicurezza. Puoi trovare diversi script di esempio nel repository GitHub degli esempi di incorporamento di Looker. Le sezioni seguenti spiegano le informazioni che dovrai fornire a questi script, nonché come creare un URL di incorporamento firmato senza utilizzare uno script.
Codifica manuale dell'URL di incorporamento firmato
Per codificare l'URL di incorporamento firmato, devi prima raccogliere le informazioni necessarie di Looker e poi creare l'URL di incorporamento firmato.
Raccolta delle informazioni di Looker necessarie
Come punto di partenza per la creazione dell'URL, devi prima determinare tutte le informazioni che dovranno essere incluse. Ti serviranno:
Incorpora URL
Recupera l'URL del Look, dell'esplorazione, della visualizzazione della query o della dashboard che vuoi incorporare. Poi rimuovi il dominio e inserisci /embed prima del percorso, come segue:
| Elemento | Pattern URL normale | Incorpora URL |
|---|---|---|
| Look | https://instance_name.looker.com/looks/4 |
/embed/looks/4 |
| Esplora | https://instance_name.looker.com/explore/my_model/my_explore |
/embed/explore/my_model/my_explore |
| Visualizzazione query | https://instance_name.looker.com/explore/my_model/my_explore?qid=1234567890abcdefghij12I 22 caratteri alfanumerici che seguono il parametro qid= nell'URL di Esplora costituiscono l'Query.client_id. Il valore Query.client_id è una stringa univoca che rappresenta la query e le impostazioni di visualizzazione.Per incorporare una visualizzazione della query, recupera il valore Query.client_id della visualizzazione della query e copia Query.client_id nell'URL di incorporamento.Puoi utilizzare la UI Esplora di Looker per creare una query con una visualizzazione supportata e copiare il valore Query.client_id dal parametro qid= oppure puoi recuperare Query.client_id con l'API Looker, ad esempio utilizzando il metodo Get Query. |
/embed/query-visualization/Query.client_id |
| Dashboard definita dall'utente | https://instance_name.looker.com/dashboards/1Includi i valori dei filtri della dashboard nascondendo i valori dei filtri, il parametro hide_filter nell'URL della dashboard. |
/embed/dashboards/1 |
| dashboard LookML | https://instance_name.looker.com/dashboards/my_model::my_dashboard |
/embed/dashboards/my_model::my_dashboard |
| Analisi conversazionale | Per la pagina delle conversazioni: https://instance_name.looker.com/conversationsPer la pagina degli agenti: https://instance_name.looker.com/agentsPer una conversazione specifica: https://instance_name.looker.com/conversations/conversation_idPer saperne di più, consulta la pagina della documentazione Incorporamento di Conversational Analytics. |
/embed/conversations/embed/agents/embed/conversations/c9f370ac830b4669aeb494396422004c |
Autorizzazioni
Un set di autorizzazioni definisce cosa possono fare un utente o un gruppo. Le autorizzazioni possono essere applicate in uno dei due modi seguenti:
- Specifiche per modello: questo tipo di autorizzazione viene applicato solo ai set di modelli che fanno parte dello stesso ruolo.
- A livello di istanza: Questo tipo di autorizzazione si applica all'istanza Looker nel suo complesso. Gli utenti con incorporamento con autorizzazioni a livello di istanza possono eseguire determinate funzioni nell'intera istanza di Looker, ma non possono accedere ai contenuti basati su modelli non inclusi nel set di modelli del loro ruolo.
Determina le autorizzazioni che vuoi concedere all'utente. Il seguente elenco mostra tutte le autorizzazioni disponibili per l'incorporamento firmato. Le autorizzazioni non incluse nel seguente elenco non sono supportate per l'incorporamento firmato:
| Autorizzazione | Dipende da | Tipo | Definizione |
|---|---|---|---|
access_data |
Nessuno | Specifico per il modello | Consente all'utente di accedere ai dati (necessario per visualizzare Look, dashboard o esplorazioni) |
see_lookml_dashboards |
access_data |
Specifico per il modello | Consente all'utente di visualizzare le dashboard LookML. Questa autorizzazione è necessaria anche se un utente dispone dell'accesso in visualizzazione alla cartella della dashboard. |
see_looks |
access_data |
Specifico per il modello | Consente all'utente di visualizzare i Look |
see_user_dashboards |
see_looks |
Specifico per il modello | Consente all'utente di visualizzare le dashboard definite dall'utente e di sfogliare le cartelle da un elemento incorporato |
explore |
see_looks |
Specifico per il modello | Consente all'utente di visualizzare le pagine Esplora |
create_table_calculations |
explore |
A livello di istanza | Necessaria per creare calcoli tabulari in un'esplorazione |
create_custom_fields |
explore |
A livello di istanza | Necessaria per creare campi personalizzati in un'esplorazione |
can_create_forecast |
explore |
A livello di istanza | Consente agli utenti di creare o modificare le previsioni nelle visualizzazioni. |
save_content |
see_looks |
A livello di istanza | Consente all'utente di apportare e salvare modifiche a Look e dashboard |
send_outgoing_webhook |
see_looks |
Specifico per il modello | Consente all'utente di pianificare l'invio di contenuti di Looker a un webhook arbitrario |
send_to_s3 |
see_looks |
Specifico per il modello | Consente all'utente di pianificare l'invio di contenuti di Looker a un bucket Amazon S3 |
send_to_sftp |
see_looks |
Specifico per il modello | Consente all'utente di pianificare l'invio di contenuti di Looker a un server SFTP |
schedule_look_emails |
see_looks |
Specifico per il modello | Consente all'utente di pianificare l'invio di contenuti di Looker alla propria email (se impostata con un attributo utente denominato "email") o a un indirizzo email che rientra nelle limitazioni impostate dalla lista consentita dei domini email. Consente all'utente con autorizzazioni create_alerts di inviare notifiche di avviso a un indirizzo email che rientra nelle limitazioni impostate dalla lista consentita dei domini email. |
schedule_external_look_emails |
schedule_look_emails |
Specifico per il modello | Consente all'utente di pianificare l'importazione dei contenuti di Looker a qualsiasi dominio email. Consente all'utente con autorizzazioni create_alerts di inviare notifiche di avviso a qualsiasi dominio email. |
send_to_integration |
see_looks |
Specifico per il modello | Consente all'utente di inviare contenuti di Looker ai servizi di terze parti integrati con Looker tramite l'hub azioni di Looker. Questa autorizzazione non è correlata alle azioni sui dati. |
schedule_without_limit |
see_looks |
Specifico per il modello | Aggiunta 26.4 Se combinata con almeno un'altra autorizzazione che consente a un utente di inviare contenuti di Looker, questa autorizzazione consente agli utenti di inviare Look o esplorazioni che inviano tutte le righe di dati. Questa autorizzazione rende visibile l'opzione Tutti i risultati nello Scheduler di Looker per i Look e le esplorazioni. |
create_alerts |
see_looks |
A livello di istanza | Consente all'utente di creare avvisi sui riquadri della dashboard per ricevere notifiche quando vengono soddisfatte o superate condizioni specificate. Gli utenti possono modificare, duplicare ed eliminare i propri avvisi e gli avvisi pubblici di altri utenti. Se l'area di lavoro di Slack dell'utente non è connessa all'istanza di Looker, l'utente non potrà creare avvisi che inviano notifiche a Slack. |
download_with_limit |
see_looks |
A livello di istanza | Consente all'utente di scaricare i risultati di una query con un limite applicato |
download_without_limit |
see_looks |
A livello di istanza | Consente all'utente di scaricare i risultati di una query senza limiti applicati |
see_sql |
see_looks |
Specifico per il modello | Consente all'utente di visualizzare l'SQL per le query e gli eventuali errori SQL risultanti dall'esecuzione delle query |
clear_cache_refresh |
access_data |
Specifico per il modello | Gli utenti possono svuotare la cache e aggiornare dashboard incorporate, dashboard legacy, riquadri della dashboard, Look ed esplorazioni. |
see_drill_overlay |
access_data |
Specifico per il modello | Consente all'utente di eseguire il drill down senza dover andare alla pagina Esplora completa. |
manage_spaces |
Nessuno | A livello di istanza | Attiva il browser dei contenuti in modo che gli utenti possano creare, copiare, spostare ed eliminare cartelle. Gli utenti dovranno anche disporre dell'autorizzazione di accesso ai contenuti Manage Access, Edit (Gestione accesso, Modifica) per la cartella o, nel caso della creazione di una nuova cartella, per la cartella padre. |
embed_browse_spaces |
Nessuno | A livello di istanza |
Attiva il browser dei contenuti in modo che un utente possa sfogliare le cartelle da un incorporamento. A qualsiasi utente con incorporamento a cui viene concessa l'autorizzazione embed_browse_spaces viene concesso l'accesso a una cartella di incorporamento personale e alla cartella Shared (Condivisa) della tua organizzazione, se presente.
L'autorizzazione embed_browse_spaces è consigliata per gli utenti che dispongono dell'autorizzazione save_content, in modo che possano sfogliare le cartelle quando selezionano dove salvare i contenuti.
Per visualizzare i contenuti delle cartelle, l'utente deve disporre anche delle autorizzazioni see_looks, see_user_dashboards e see_lookml_dashboards.
L'autorizzazione embed_browse_spaces è obbligatoria per gli utenti con contenuti incorporati che vogliono contrassegnare dashboard o Look come preferiti, poiché per contrassegnare i contenuti come preferiti è necessario l'accesso alla cartella Preferiti.
|
embed_save_shared_space |
Nessuno | A livello di istanza |
Consente all'utente che dispone anche dell'autorizzazione save_content di accedere alla cartella Condivisi dell'organizzazione, se presente, dalla finestra di dialogo Salva. Gli utenti che dispongono dell'autorizzazione save_content, ma non dell'autorizzazione embed_save_shared_space, potranno salvare i contenuti solo nella propria cartella di incorporamento personale.
L'autorizzazione embed_save_shared_space non sostituisce le autorizzazioni di accesso ai contenuti. Ad esempio, per consentire a un utente di salvare nella cartella Shared (Condivisa), deve comunque disporre dell'accesso Manage Access, Edit (Gestione accesso, Modifica) alla cartella Shared (Condivisa). Inoltre, la mancanza dell'autorizzazione embed_save_shared_space non impedisce a un utente che dispone dell'autorizzazione save_content e dell'accesso Gestisci accesso, Modifica alla cartella Condivisa di salvare i contenuti al suo interno se dispone di un modo alternativo per accedere alla cartella Condivisa, ad esempio utilizzando l'opzione Esplora da qui da una dashboard incorporata.
|
gemini_in_looker |
Nessuno | Specifico per il modello | Questa è l'unica autorizzazione inclusa nel ruolo predefinito di Gemini. Questa autorizzazione consente agli utenti di eseguire le attività associate a una qualsiasi delle funzionalità di Gemini in Looker attivate dalla pagina Gemini in Looker nel pannello Amministratore. Per alcune attività potrebbero essere necessarie autorizzazioni aggiuntive. |
chat_with_agent |
gemini_in_looker |
Specifico per il modello | Aggiunta 25.18 Gli utenti di Analisi conversazionale possono chattare con agenti di dati basati sui dati di un massimo di cinque esplorazioni di Looker o con agenti di dati della dashboard. Sono necessarie autorizzazioni aggiuntive per chattare con gli agenti di dati della dashboard. |
chat_with_explore |
chat_with_agent |
Specifico per il modello | Aggiunta 25.18 Gli utenti di Analisi conversazionale possono chattare con un'esplorazione di Looker se dispongono anche di autorizzazioni aggiuntive richieste. |
save_agents |
chat_with_explore |
Specifico per il modello | Aggiunta 25.18 Gli utenti di Analisi conversazionale possono creare, modificare, eliminare e condividere agenti di dati su dashboard o esplorazioni. Per modificare, eliminare o condividere un agente di dati creato da un altro utente, agli utenti deve essere concesso un ruolo che contenga questa autorizzazione su ogni modello utilizzato dall'agente, nonché le autorizzazioni aggiuntive richieste e l'accesso Gestisci accesso, accesso in modifica all'agente. |
admin_agents |
gemini_in_looker |
Specifico per il modello | Aggiunto il 25.18 Per l'utilizzo con l'API di analisi conversazionale e analisi conversazionale incorporata, gli utenti possono creare, modificare, condividere ed eliminare agenti dati. Quando un utente crea un agente di dati, gli viene concesso automaticamente l'accesso Gestisci accesso, Modifica. Con questa autorizzazione, un utente non deve avere l'accesso ai contenuti dell'agente di dati per modificare, eliminare o condividere un agente di dati creato da un altro utente. |
Accesso al modello
Determina i modelli LookML a cui l'utente deve avere accesso. Si tratta di un elenco di nomi di modelli.
Attributi utente
Determina gli eventuali attributi utente che l'utente deve avere. Ti serviranno il nome dell'attributo utente di Looker e il valore che l'utente deve avere per quell'attributo.
Gruppi
Determina gli eventuali gruppi di cui l'utente deve far parte. Ti serviranno gli ID gruppo, non i nomi dei gruppi. L'aggiunta di un utente con incorporamento firmato a un gruppo di Looker ti consente di gestire l'accesso di quell'utente alle cartelle di Looker. Gli utenti con incorporamento firmato avranno accesso a tutte le cartelle condivise con i membri dei loro gruppi di Looker.
Puoi anche utilizzare il parametro external_group_id per creare un gruppo esterno ai normali gruppi di Looker. In questo caso, gli utenti con incorporamento firmato con lo stesso external_group_id avranno accesso a una cartella condivisa, denominata "Gruppo", univoca per il gruppo esterno.
Ruoli incorporati
I parametri permissions e models creano un ruolo per l'utente incorporato. Questo ruolo viene visualizzato come "Ruolo incorporato" nella pagina Utenti nella sezione Amministratore di Looker. Se i parametri permissions, models e group_ids sono tutti specificati nell'URL di incorporamento, il ruolo incorporato viene aggiunto a tutti i ruoli già assegnati agli elenco di gruppo elencati nel parametro group_ids. Questo è lo stesso comportamento dei ruoli standard, in quanto tutti i ruoli in Looker sono additivi.
Ad esempio, supponiamo che tu abbia un gruppo esistente in Looker con l'ID gruppo 1 e che questo gruppo abbia già l'autorizzazione explore per un modello denominato model_one e che tu crei un URL di incorporamento con i seguenti parametri:
group_ids=["1"]permissions=["access_data","see_looks"]models=["model_two"]
In questo caso, l'utente incorporato erediterà la possibilità di visualizzare ed esplorare i dati su model_one e il ruolo di incorporamento creato con i parametri precedenti concederà anche la possibilità di visualizzare i dati su model_two.
Creazione dell'URL di incorporamento
Un URL di incorporamento firmato ha il seguente formato:
https://HOST/login/embed/EMBED URL?PARAMETERS&signature=SIGNATURE
Host
L'host è la località in cui è ospitata l'istanza di Looker. Ad esempio, analytics.mycompany.com. Assicurati di includere il numero di porta se non hai attivato il port forwarding, ad esempio analytics.mycompany.com:9999.
Incorpora URL
L'URL di incorporamento è stato determinato in precedenza. Il formato sarà simile al seguente:
/embed/looks/4/embed/explore/my_model/my_explore/embed/query-visualization/Query.client_id/embed/dashboards/1o/embed/dashboards-legacy/1/embed/dashboards/my_model::my_dashboardo/embed/dashboards-legacy/my_model::my_dashboard
Ciò significa che il pattern /embed//embed/ verrà visualizzato nell'URL finale, il che è corretto.
Se utilizzi eventi JavaScript incorporati, assicurati di aggiungere il parametro embed_domain (il dominio in cui viene utilizzato l'iframe) alla fine dell'URL di incorporamento, in questo modo:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com
Il parametro embed_domain viene aggiunto all'URL di incorporamento prima della codifica dell'URL. Se l'URL di incorporamento contiene già parametri di ricerca dei contenuti (ad esempio valori di filtro), aggiungi il parametro embed_domain utilizzando una e commerciale (&):
/embed/looks/4?filter_name=value
/embed/looks/4?filter_name=value&embed_domain=https://mywebsite.com
Se utilizzi l'SDK di incorporamento, assicurati di aggiungere il parametro embed_domain e di includere anche sdk=2 alla fine dell'URL di incorporamento, in questo modo:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com&sdk=2
Il parametro sdk=2 consente a Looker di identificare la presenza dell'SDK e di sfruttare le funzionalità aggiuntive fornite dall'SDK. L'SDK non può aggiungere questo parametro autonomamente perché fa parte dell'URL firmato.
Parametri
I seguenti parametri URL vengono utilizzati per specificare le informazioni necessarie per l'incorporamento firmato:
| Parametro | Valore predefinito | Descrizione | Tipo di dati | Esempio |
|---|---|---|---|---|
nonce |
Valore obbligatorio | Qualsiasi stringa casuale, ma non può essere ripetuta entro un'ora e deve contenere meno di 255 caratteri.In questo modo, un malintenzionato non può inviare nuovamente l'URL di un utente legittimo per raccogliere informazioni che non dovrebbe avere. | Stringa JSON | "22b1ee700ef3dc2f500fb7" |
time |
Valore obbligatorio | L'ora corrente come timestamp UNIX. | Numero intero | 1407876784 |
session_length |
Valore obbligatorio | Il numero di secondi in cui l'utente deve rimanere connesso a Looker, compreso tra 0 e 2.592.000 secondi (30 giorni). | Numero intero | 86400 |
external_user_id |
Valore obbligatorio | Un identificatore per ogni utente nell'applicazione che incorpora Looker. Looker utilizza external_user_id per distinguere gli utenti con accesso incorporato, pertanto a ogni utente deve essere assegnato un ID univoco.Puoi creare un external_user_id per un utente con qualsiasi stringa, purché sia univoca per quell'utente. Ogni ID è associato a un insieme di autorizzazioni, attributi utente e modelli. Un singolo browser può supportare una sola external_user_id o sessione utente alla volta. Non è possibile apportare modifiche alle autorizzazioni o agli attributi di un utente durante la sessione.Per motivi di sicurezza, assicurati di non utilizzare lo stesso external_user_id in sessioni di incorporamento diverse per utenti interattivi diversi e di non utilizzare lo stesso external_user_id per un singolo utente con autorizzazioni, valori degli attributi utente o accesso ai modelli diversi.L'utilizzo dello stesso external_user_id per più utenti o per lo stesso utente con più autorizzazioni, attributi utente o set di modelli può rendere i dati visibili a utenti che altrimenti non avrebbero accesso. |
Stringa JSON | "user-4" |
permissions |
Valore obbligatorio | L'elenco delle autorizzazioni che l'utente deve avere.Consulta la sezione Autorizzazioni di questa pagina per l'elenco delle autorizzazioni consentite. | Array di stringhe | [ "access_data", "see_looks"] |
models |
Valore obbligatorio | L'elenco dei nomi dei modelli a cui l'utente deve avere accesso. | Array di stringhe | [ "model_one", "model_two"] |
group_ids |
[] | L'elenco dei gruppi di Looker di cui l'utente deve essere membro, se presenti. Utilizza gli ID gruppo anziché i nomi dei gruppi. | Array di stringhe | ["4", "3"] |
external_group_id |
"" | Un identificatore univoco del gruppo a cui appartiene l'utente nell'applicazione che incorpora Looker.Gli utenti che dispongono dell'autorizzazione per salvare i contenuti e che condividono un ID gruppo esterno possono salvare e modificare i contenuti in una cartella Looker condivisa denominata "Gruppo". Il parametro external_group_id è l'unico metodo disponibile per creare gruppi esterni di utenti incorporati. Non è possibile configurare gruppi di utenti con incorporamento esterno dall'interfaccia utente di Looker.La lunghezza di external_group_id non deve superare gli 81 caratteri. Viene creata una cartella corrispondente per il gruppo e i nomi delle cartelle hanno un limite di 100 caratteri. Il nome della cartella è preceduto dal prefisso "Embed Shared Group ", pertanto external_group_id è limitato a 81 caratteri per rispettare il limite di caratteri di 100 o meno. |
Stringa JSON | "Accounting" |
user_attributes |
{} | L'elenco degli eventuali attributi utente che l'utente deve avere. Contiene un elenco di nomi di attributi utente seguiti dal valore dell'attributo utente.Se il tuo modello LookML è localizzato, puoi utilizzare l'attributo utente locale nell'URL di incorporamento per specificare una lingua per l'incorporamento. Ad esempio, l'inclusione del parametro user_attributes { "locale" : "fr_FR" } comporterebbe il caricamento del francese come lingua dell'incorporamento. |
Hash di stringhe | { "vendor_id" : "17", "company" : "xactness"} |
access_filters |
Valore obbligatorio | In Looker 3.10 questo parametro è stato rimosso, ma è ancora obbligatorio nell'URL. Utilizza access_filters con un segnaposto vuoto, ad esempio access_filters={}. |
Segnaposto vuoto | {} |
first_name |
"" | Il nome dell'utente. Se il campo viene lasciato vuoto, first_name manterrà il valore dell'ultima richiesta o sarà "Embed" se non è mai stato impostato un nome. |
Stringa JSON | "Alice" |
last_name |
"" | Il cognome dell'utente. Se il campo viene lasciato vuoto, last_name manterrà il valore dell'ultima richiesta o sarà "Embed" se non è mai stato impostato un cognome. |
Stringa JSON | "Jones" |
user_timezone |
"" | Se hai attivato Fusi orari specifici degli utenti, imposta il valore dell'opzione Fuso orario visualizzatore nel menu a discesa Fuso orario nel Look o nella dashboard incorporati. Questo parametro non modifica direttamente il fuso orario in cui vengono mostrati i contenuti; l'utente dovrà selezionare un fuso orario dal menu a discesa.Consulta i valori validi nella pagina della documentazione Riferimento per il fuso orario dell'incorporamento firmato.Suggerimento del team di Chat: se vuoi che i contenuti incorporati utilizzino per impostazione predefinita il fuso orario del visualizzatore, utilizza uno dei seguenti metodi:?query_timezone=user_timezone all'URL di incorporamento. Ad esempio:/embed/dashboards/1?query_timezone=user_timezone |
Stringa JSON o null | "US/Pacific"- oppure -null |
force_logout_login |
Valore obbligatorio | Se un utente Looker normale ha già eseguito l'accesso a Looker e visualizza un elemento incorporato firmato, puoi scegliere se:1) Dovrebbero visualizzare l'elemento con le loro credenziali attuali.o2) Dovrebbero uscire e accedere di nuovo con le credenziali di incorporamento firmate. | Booleano (true o false) | true |
ca_chat |
true |
Se hai attivato l'analisi conversazionale e l'impostazione Agenti della dashboard, imposta se il riquadro di conversazione dell'agente della dashboard è visibile agli utenti con incorporamento. Se true, la stella di Gemini |
Booleano (true o false) | true |
Firma
Looker utilizza la firma per verificare che sia stato utilizzato il secret di incorporamento corretto per generare la firma nell'URL di incorporamento e che i parametri nell'URL di incorporamento non siano stati modificati. Se il secret di incorporamento o i parametri URL sono diversi o sono stati modificati, la firma non corrisponderà e l'autenticazione verrà rifiutata.
Di conseguenza, la firma nell'URL di incorporamento fornisce una prova crittograficamente solida che l'URL di incorporamento non è stato modificato in transito e che è stato creato da una parte attendibile che possiede la chiave secret di incorporamento.
Per generare la firma, devi seguire questi passaggi.
- Raccogli i seguenti valori parametro in questo ordine:
- Host, seguito da
login/embed/(ad esempio,analytics.mycompany.com/login/embed/) - Incorpora URL
- Nonce
- Ora attuale
- Durata sessione
- ID utente esterno
- Autorizzazioni
- Modelli
- ID gruppo
- ID gruppo esterno
- Attributi dell'utente
- Filtri di accesso (richiede un segnaposto vuoto)
- Visibilità dell'agente di dati della dashboard di Analisi conversazionale
- Host, seguito da
- Formatta tutti i valori diversi da Host e URL di incorporamento come JSON
- Concatena i valori con interruzioni di riga (
\n) - Firma HMAC-SHA1 della stringa concatenata con la chiave segreta di incorporamento di Looker
Codifica
L'ultimo passaggio consiste nel codificare l'URL.
Prima di codificare l'URL, un URL di incorporamento formattato correttamente che utilizza tutti i parametri possibili potrebbe avere il seguente aspetto:
https://analytics.mycompany.com/login/embed//embed/dashboards/1?
nonce="22b1ee700ef3dc2f500fb7"&
time=1407876784&
session_length=86400&
external_user_id="user-4"&
permissions=["access_data","see_user_dashboards","see_looks"]&
models=["model_one","model_two"]&
group_ids=[4,3]&
external_group_id="Allegra K"&
user_attributes={"vendor_id":"17","company":"xactness"}&
access_filters={}&
ca_chat=false&
first_name="Alice"&
last_name="Jones"&
user_timezone="US/Pacific"&
force_logout_login=true&
signature=123456789ABCDEFGHIJKL
Come indicato in precedenza, è corretto che /embed//embed/ venga visualizzato nell'URL.
Dopo la codifica, l'URL avrà il seguente aspetto:
https://analytics.mycompany.com/login/embed/%2embed%2Fdashboards%2F1?
nonce=%2222b1ee700ef3dc2f500fb7&%22&
time=1407876784&
session_length=86400&
external_user_id=%22user-4%22&
permissions=%5B%22access_data%22%2C%22see_user_dashboards%22%2C%22see_looks%22%5D&
models=%5B%22model_one%22%2C%22model_two%22%5D&
group_ids=%5B4%2C3%5D&
external_group_id=%22Allegra%20K%22&
user_attributes=%7B%22vendor_id%22%3A%2217%22%2C%22company%22%3A%22xactness%22%7D&
access_filters%7B%7D%26%0A
ca_chat=false&
first_name=%22Alice%22&
last_name=%22Jones%22&
user_timezone=%22US%2FPacific%22&
force_logout_login=true&
signature=123456789ABCDEFGHIJKL
Utilizzo dell'endpoint API Create Signed Embed Url
L'API Looker include l'endpoint Create Signed Embed Url, che accetta un insieme di parametri di incorporamento firmati che include l'URL dei contenuti che vuoi incorporare e restituisce un URL firmato completo, codificato e crittograficamente.
Per utilizzare questo endpoint API da un server web, il server web deve essere in grado di eseguire l'autenticazione nell'API Looker con privilegi amministrativi. Il dominio del server web deve essere elencato anche nella lista consentita dei domini di incorporamento.
Puoi anche utilizzare Explorer API per generare un URL firmato che utilizza questo endpoint. Puoi installare Explorer API sulla tua istanza di Looker dal Looker Marketplace. Una volta generato, l'URL firmato deve essere copiato esattamente e può essere utilizzato una sola volta, altrimenti non funzionerà. Explorer API è utile anche per generare un URL firmato e confrontarlo con un URL firmato creato manualmente per la risoluzione dei problemi.
Per saperne di più sull'API Looker, consulta la pagina della documentazione Introduzione all'API Looker.
Test dell'URL di incorporamento
Per testare l'URL finale, incollalo nello strumento di convalida dell'URI di incorporamento nella pagina Incorpora della sezione Amministratore di Looker. Anche se questa opzione non può dirti se i dati e le autorizzazioni che hai previsto sono stati configurati correttamente, può convalidare che l'autenticazione funzioni correttamente.
Best practice per l'incorporamento di più iframe con l'incorporamento firmato
Quando incorpori più iframe di Looker in una singola pagina, le richieste di autenticazione simultanee per lo stesso external_user_id possono causare conflitti di provisioning degli utenti, conflitti di blocco sul server di Looker o sessioni interrotte. Segui queste best practice quando la tua applicazione incorpora più iframe:
Autentica solo il primo iframe con un URL firmato: quando utilizzi l'incorporamento firmato con i cookie attivati tramite un dominio personalizzato, solo il primo iframe della pagina deve caricare un URL
/login/embed/...firmato. Gli iframe successivi devono attendere che il primo iframe termini l'autenticazione e poi caricare gli URL di incorporamento non firmati (ad esempio/embed/dashboards/DASHBOARD_ID) in modo da ereditare il cookie di sessione dal primo iframe senza eseguire nuovamente il provisioning degli utenti. L'SDK Embed di Looker (@looker/embed-sdk) gestisce automaticamente questa operazione dopo la risoluzione della prima connessione.Precarica un iframe per stabilire la sessione: per creare un'istanza di una sessione utente incorporata prima di caricare più iframe, precarica un iframe utilizzando
/embed/preload(o il metodo.preload()nell'SDK Embed v2) per stabilire la sessione il più rapidamente possibile.Utilizza la navigazione in-frame anziché ricreare gli iframe: quando utilizzi l'SDK Embed v2, puoi navigare all'interno di un iframe già istanziato chiamando metodi come
connection.loadDashboard(DASHBOARD_ID)oconnection.loadUrl(EMBED_URL)anziché creare un nuovo iframe. Per saperne di più, consulta Introduzione all'SDK Embed.Condividi un singolo
session_reference_tokennell'incorporamento senza cookie: se utilizzi l'incorporamento senza cookie con più iframe in una pagina, consulta le best practice per l'incorporamento di più iframe con l'incorporamento senza cookie nella pagina Incorporamento senza cookie.