L'incorporamento firmato è un modo per presentare Look, visualizzazioni, esplorazioni, dashboard o dashboard LookML privati incorporati ai tuoi utenti senza richiedere loro di disporre di un accesso a Looker separato. Gli utenti verranno 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 di documentazione Condivisione, importazione e incorporamento pubblici dei look.
Prima di poter utilizzare l'incorporamento firmato nell'istanza di Looker, un amministratore di Looker deve attivarlo nel pannello Amministrazione di Looker e creare una chiave segreta per l'incorporamento. Per istruzioni, consulta la pagina della documentazione Inizia a utilizzare l'incorporamento: abilita l'incorporamento firmato.
Hosting appropriato 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, il tentativo di autenticare l'iframe incorporato tra i domini non è possibile nei browser che bloccano i cookie di terze parti (a meno che l'utente non modifichi le impostazioni di 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 Looker per configurare il DNS necessario per attivare l'utilizzo del dominio personalizzato. In questo modo, Looker potrà condividere lo stesso dominio dell'applicazione di incorporamento e utilizzare i cookie proprietari, che vengono 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, mentre i clienti di società o gruppi diversi non devono 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 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 incorporato 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 API Looker Create Signed Embed Url, 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 incorporato firmato senza utilizzare uno script.
Codifica manuale dell'URL di incorporamento firmato
Per codificare l'URL di incorporamento firmato, prima raccogli le informazioni necessarie di Looker, poi crea 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 delle query | https://instance_name.looker.com/explore/my_model/my_explore?qid=1234567890abcdefghij12I 22 caratteri alfanumerici che seguono il parametro qid= nell'URL dell'esplorazione costituiscono 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 eventuali 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 di documentazione Incorporare l'analisi conversazionale. |
/embed/conversations/embed/agents/embed/conversations/c9f370ac830b4669aeb494396422004c |
Autorizzazioni
Un set di autorizzazioni definisce cosa può fare un utente o un gruppo. Le autorizzazioni possono essere applicate in due modi:
- 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'intera istanza di Looker. Gli utenti incorporati 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 presenti 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 (obbligatorio 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 Visualizza 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 | Necessario 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 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 la distribuzione dei contenuti di Looker al proprio indirizzo email (se impostato con un attributo utente denominato "email") o a un indirizzo email che rientra nei limiti stabiliti dalla lista consentita dei domini email. Consente all'utente con autorizzazioni create_alerts di inviare notifiche di avviso a un indirizzo email che rientra nei limiti stabiliti dalla lista consentita di 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 | Aggiunto nella versione 26.4 Se combinata con almeno un'altra autorizzazione che consente a un utente di distribuire contenuti di Looker, questa autorizzazione consente agli utenti di distribuire 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 nei riquadri della dashboard per ricevere notifiche quando le condizioni specificate vengono soddisfatte o superate. Gli utenti possono modificare, duplicare ed eliminare i propri avvisi e quelli 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 le dashboard incorporate, le dashboard legacy, i riquadri delle dashboard, i Look e le esplorazioni. |
see_drill_overlay |
access_data |
Specifico per il modello | Consente all'utente di esaminare in dettaglio senza dover accedere 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 le cartelle. Gli utenti avranno bisogno anche dell'autorizzazione di accesso ai contenuti Gestione accesso, Modifica per la cartella o, nel caso della creazione di una nuova cartella, per la cartella principale. |
embed_browse_spaces |
Nessuno | A livello di istanza |
Attiva il browser dei contenuti in modo che un utente possa sfogliare le cartelle da un'incorporazione. 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 l'utente possa sfogliare le cartelle quando seleziona la posizione in cui 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 avranno solo la possibilità di salvare i contenuti nella cartella personale per l'incorporamento.
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 Condivisa, deve comunque disporre dell'accesso Gestione accesso, Modifica alla cartella 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 Condivisi di salvare i contenuti al suo interno se dispone di un modo alternativo per accedere alla cartella Condivisi, 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 concede agli utenti la possibilità di eseguire le attività associate a una qualsiasi delle funzionalità di Gemini in Looker attivate dalla pagina Gemini in Looker nel pannello Amministrazione. Per alcune attività potrebbero essere necessarie autorizzazioni aggiuntive. |
chat_with_agent |
gemini_in_looker |
Specifico per il modello | Aggiunto 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 delle dashboard. Per chattare con gli agenti dei dati della dashboard sono necessarie autorizzazioni aggiuntive. |
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 della versione 25.18 Gli utenti di Analisi conversazionale possono creare, modificare, eliminare e condividere agenti di dati nelle dashboard o in Esplora. Per modificare, eliminare o condividere un agente dati creato da un altro utente, agli utenti deve essere concesso un ruolo che contenga questa autorizzazione per ogni modello utilizzato dall'agente, nonché autorizzazioni aggiuntive richieste e l'accesso Gestisci accesso, Modifica all'agente. |
admin_agents |
gemini_in_looker |
Specifico per il modello | Aggiunto 25.18 Per l'utilizzo con l'API Conversational Analytics e Conversational Analytics incorporato, gli utenti possono creare, modificare, condividere ed eliminare agenti di dati. Quando un utente crea un agente dati, gli viene concesso automaticamente l'accesso all'agente dati Gestisci accesso, Modifica. Con questa autorizzazione, un utente non ha bisogno di ricevere 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 a cui l'utente deve appartenere. Ti serviranno gli ID dei gruppi, non i nomi. L'aggiunta di un utente incorporato firmato a un gruppo Looker consente di gestire l'accesso dell'utente alle cartelle di Looker. Gli utenti incorporati firmati avranno accesso a tutte le cartelle condivise con i membri dei loro gruppi Looker.
Puoi anche utilizzare il parametro external_group_id per creare un gruppo esterno ai normali gruppi di Looker. In questo caso, gli utenti incorporati firmati 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 Amministrazione di Looker. Se i parametri permissions, models e group_ids sono tutti specificati nell'URL di incorporamento, il ruolo incorporato viene aggiunto ai ruoli già assegnati agli elenchi 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 in Looker esista un gruppo con l'ID gruppo 1 e che questo gruppo disponga già dell'autorizzazione explore per un modello denominato model_one. Se 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 incorporato 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 incorporato è stato determinato in precedenza. Il formato sarà il 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 incorporato, 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 solo una external_user_id o una sessione utente alla volta. Non è possibile apportare modifiche alle autorizzazioni o agli attributi utente a metà 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 vi avrebbero accesso. |
Stringa JSON | "user-4" |
permissions |
Valore obbligatorio | L'elenco delle autorizzazioni che l'utente deve avere.Per l'elenco delle autorizzazioni consentite, consulta la sezione Autorizzazioni in questa pagina. | 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 di incorporamento esterni 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 da "Embed Shared Group ", quindi 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 attributi utente che l'utente deve avere, se presenti. 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" } farebbe caricare il 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 di incorporamento firmato.Suggerimento del team di Chat:se vuoi che i contenuti incorporati utilizzino per impostazione predefinita il fuso orario dello spettatore, 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"- o -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) devono uscire e accedere di nuovo con le credenziali di incorporamento firmate. | Booleano (vero o falso) | true |
ca_chat |
true |
Se hai attivato Conversational Analytics e l'impostazione Agenti dashboard, determina se il riquadro della conversazione dell'agente della dashboard è visibile agli utenti incorporati. 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 crittografica solida che l'URL di incorporamento non è stato modificato in transito e che è stato creato da una parte attendibile che possiede la chiave segreta 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 includono l'URL dei contenuti da incorporare e restituisce un URL completo, codificato e firmato 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 Guida introduttiva 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 prevedi sono stati configurati correttamente, può verificare che l'autenticazione funzioni correttamente.