L'incorporamento firmato è un modo per presentare Look, visualizzazioni, esplorazioni, dashboard o dashboard di LookML privati incorporati ai tuoi utenti senza richiedere loro di disporre di credenziali di accesso separate a Looker. Gli utenti verranno invece autenticati tramite la tua applicazione.
L'incorporamento firmato funziona creando un URL di Looker speciale da utilizzare in un iframe. L'URL contiene le informazioni che vuoi condividere, l'ID dell'utente nel tuo sistema e le autorizzazioni che vuoi che l'utente abbia. Dovrai quindi firmare l'URL con una chiave segreta fornita da Looker.
Per l'embedding pubblico, consulta la sezione Embedding pubblico con tag iframe
della pagina della documentazione Condivisione, importazione ed embedding pubblico di Look.
Prima di poter utilizzare l'inserimento di annunci firmati nella tua istanza di Looker, un amministratore di Looker deve attivare l'inserimento di annunci firmati nel pannello di amministrazione di Looker e creare una chiave segreta di incorporamento. Per le istruzioni, consulta la pagina della documentazione Guida introduttiva all'inserimento: attivazione dell'inserimento con firma.
Hosting corretto per l'incorporamento firmato
Alcuni browser, ad esempio Safari o browser con estensioni installate che bloccano gli annunci o i cookie di monitoraggio, utilizzano per impostazione predefinita un criterio dei cookie che blocca i cookie di terze parti. Quando la funzionalità Inserimento senza cookie è attiva, i browser che bloccano i cookie di terze parti possono autenticare gli utenti nell'iframe incorporato in diversi domini. L'autenticazione di incorporamento senza cookie richiede la configurazione lato server. Per esempi di configurazione, consulta la pagina della documentazione relativa all'incorporamento senza cookie.
Se la funzionalità di Integrazione senza cookie non è attiva, 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 la tua istanza è ospitata da Looker, contatta l'assistenza di Looker per configurare la configurazione DNS necessaria 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 Looker ospitata dal cliente, assicurati che l'applicazione che utilizzerà l'embedding firmato utilizzi lo stesso dominio della tua istanza Looker.
Controllo della visibilità dei client con un sistema chiuso
In una configurazione di incorporamento firmata, è normale che gli utenti di Looker presentino i dati ai propri clienti, pur avendo clienti di società o gruppi diversi che non devono conoscersi. In questo scenario, per salvaguardare le informazioni private dei 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 ulteriori informazioni, consulta le pagine di documentazione Progettazione e configurazione di un sistema di livelli di accesso e Best practice per la sicurezza di Dati incorporati.
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 Genera URL di incorporamento nel menu con tre puntini della dashboard di una dashboard o nel menu a forma di ingranaggio Azioni 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.
Codice dell'URL di incorporamento firmato. Per creare l'URL corretto, dovrai scrivere del 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 di 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.
Codificare manualmente l'URL di incorporamento firmato
Per codificare l'URL di incorporamento firmato, raccogli prima le informazioni necessarie di Looker, quindi crea l'URL di incorporamento firmato.
Raccogliere le informazioni necessarie di Looker
Come punto di partenza per creare l'URL, devi prima determinare tutte le informazioni che devono essere incluse. Avrai bisogno di:
Incorpora URL
Recupera l'URL del look, dell'esplorazione, della visualizzazione della query o della dashboard che vuoi incorporare. Quindi 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=1234567890abcdefghij12 I 22 caratteri alfanumerici che seguono il parametro qid= nell'URL dell'esplorazione costituiscono il Query.client_id . Il valore Query.client_id è una stringa univoca che rappresenta la query e le impostazioni di visualizzazione.Per incorporare una visualizzazione di query, recupera il valore Query.client_id della visualizzazione di query e copia Query.client_id nell'URL di incorporamento.Puoi utilizzare l'interfaccia utente di Esplorazione 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/1 Includi eventuali valori di filtro della dashboard o, se nascondi i valori di filtro, il parametro hide_filter nell'URL della dashboard. |
|
Dashboard precedente definita dall'utente | https://instance_name.looker.com/dashboards-legacy/1 |
/embed/dashboards-legacy/1 |
dashboard LookML | https://instance_name.looker.com/dashboards/my_model::my_dashboard |
/embed/dashboards/my_model::my_dashboard |
Dashboard LookML precedente | https://instance_name.looker.com/dashboards-legacy/my_model::my_dashboard |
/embed/dashboards-legacy/my_model::my_dashboard |
I contenuti incorporati riflettono sempre la versione di produzione dei contenuti. Eventuali modifiche apportate in modalità di sviluppo che influiscono sui contenuti e che non sono state implementate in produzione non verranno visualizzate in un'integrazione.
Autorizzazioni
Un set di autorizzazioni definisce cosa può fare un utente o un gruppo. Le autorizzazioni possono essere applicate in due modi:
- Specifica per il modello:questo tipo di autorizzazione si applica 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 incorporati con autorizzazioni a livello di istanza possono eseguire determinate funzioni nell'intera istanza di Looker, ma non possono accedere ai contenuti in base a modelli non inclusi nell'insieme di modelli del loro ruolo.
Determina le autorizzazioni che vuoi che l'utente abbia. L'elenco seguente mostra tutte le autorizzazioni disponibili per l'inserimento con firma. Le autorizzazioni non presenti nel seguente elenco non sono supportate per l'inserimento con firma:
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 |
see_looks |
access_data |
Specifico per il modello | Consente all'utente di vedere 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'integrazione |
explore |
see_looks |
Specifico per il modello | Consente all'utente di visualizzare le pagine Esplora |
create_table_calculations |
explore |
A livello di istanza | Obbligatorio per creare calcoli tabulari in un'esplorazione |
create_custom_fields |
explore |
A livello di istanza | AGGIUNTO IL 22.4 Occorreva creare campi personalizzati in un'esplorazione |
can_create_forecast |
explore |
A livello di istanza | AGGIUNTA IL 22/12 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 dei contenuti di Looker a un webhook arbitrario |
send_to_s3 |
see_looks |
Specifico per il modello | Consente all'utente di pianificare l'invio dei contenuti di Looker in un bucket Amazon S3 |
send_to_sftp |
see_looks |
Specifico per il modello | Consente all'utente di pianificare l'invio dei contenuti di Looker a un server SFTP |
schedule_look_emails |
see_looks |
Specifico per il modello | Consente all'utente di pianificare l'invio dei contenuti di Looker alla propria email (se impostato con un attributo utente denominato "email") o a un indirizzo email che rientra nei limiti impostati 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 impostati dalla lista consentita dei domini email. |
schedule_external_look_emails |
schedule_look_emails |
Specifico per il modello | Consente all'utente di pianificare l'invio 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. |
create_alerts |
see_looks |
A livello di istanza | Consente all'utente di creare avvisi nei riquadri della dashboard per ricevere notifiche quando vengono soddisfatte o superate condizioni specifiche. Gli utenti possono modificare, duplicare ed eliminare i propri avvisi e quelli Pubblici di altri utenti. Se lo spazio di lavoro di Slack dell'utente non è connesso 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 |
see_sql |
see_looks |
Specifico per il modello | Consente all'utente di vedere il codice SQL per le query e gli eventuali errori SQL derivanti dall'esecuzione delle query |
clear_cache_refresh |
access_data |
Specifico per il modello | AGGIUNTA 21.14 Gli utenti possono svuotare la cache e aggiornare le dashboard incorporate, le dashboard precedenti, i riquadri della dashboard, i Look e le esplorazioni. |
see_drill_overlay |
access_data |
Specifico per il modello | Consente all'utente di visualizzare i dettagli senza dover accedere alla pagina Esplora completa. |
embed_browse_spaces |
Nessuno | A livello di istanza | Attiva il browser dei contenuti in modo che un utente possa sfogliare le cartelle da un'integrazione. A qualsiasi utente di incorporamento a cui è stata concessa l'autorizzazione embed_browse_spaces viene concesso l'accesso a una cartella di incorporamento personale e alla cartella Condivisa della tua organizzazione, se esistente. L'autorizzazione embed_browse_spaces è consigliata per gli utenti che dispongono dell'autorizzazione save_content , in modo che possano sfogliare le cartelle quando selezionano 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 . |
embed_save_shared_space |
Nessuno | A livello di istanza |
AGGIUNTA 21.4
Consente all'utente che dispone anche dell'autorizzazione save_content di accedere alla cartella Condivisa dell'organizzazione, se esistente, dalla finestra di dialogo Salva. Gli utenti che dispongono dell'autorizzazione save_content , ma non di embed_save_shared_space , avranno la possibilità di salvare i contenuti solo nella cartella di incorporamento personale.L'autorizzazione embed_save_shared_space non sostituisce le autorizzazioni di accesso ai contenuti. Ad esempio, per consentire all'utente di salvare nella cartella Condivisa, è necessario che disponga dell'accesso Gestisci accesso, Modifica alla cartella Condivisa. Inoltre, la mancanza dell'autorizzazione embed_save_shared_space non impedisce a un utente che dispone dell'autorizzazione embed_save_shared_space e dell'autorizzazione Gestisci accesso, Modifica alla cartella Condivisi di salvare contenuti al suo interno se ha un modo alternativo per accedere alla cartella Condivisi, ad esempio utilizzando l'opzione Esplora da qui da una dashboard incorporata.save_content |
Accesso al modello
Determina a quali modelli LookML l'utente deve avere accesso. Si tratta semplicemente di un elenco di nomi di modelli.
Attributi utente
Determina gli eventuali attributi utente che l'utente deve avere. Devi avere il nome dell'attributo utente di Looker, nonché 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 gruppo anziché i nomi dei gruppi. L'aggiunta di un utente di incorporamento firmato a un gruppo di Looker ti consente di gestire l'accesso dell'utente alle cartelle di Looker. Gli utenti di embedding che hanno eseguito la registrazione 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 di incorporamento che hanno eseguito la registrazione 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 dell'embed. Questo ruolo viene visualizzato come "Ruolo incorporato" nella pagina Utenti della sezione Amministrazione di Looker. Se i parametri permissions
, models
e group_ids
sono tutti specificati nell'URL di incorporamento, il ruolo incorporato è additivo a tutti i ruoli già assegnati ai gruppi elencati nel parametro group_ids
. È lo stesso 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
. Creando 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_one
.model_two
Creazione dell'URL incorporato
Un URL di incorporamento firmato ha il seguente formato:
https://HOST/login/embed/URL EMBED?PARAMETERS&signature=FIRMA
Host
L'host è la posizione 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/1
o/embed/dashboards-legacy/1
/embed/dashboards/my_model::my_dashboard
o/embed/dashboards-legacy/my_model::my_dashboard
Ciò significa che il pattern /embed//embed/
verrà visualizzato nell'URL finale.
Se utilizzi eventi JavaScript incorporati, assicurati di aggiungere un embed_domain
(il dominio in cui viene utilizzato l'iframe) alla fine dell'URL di incorporamento, come segue:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com
embed_domain
viene aggiunto dopo l'URL di incorporamento e prima di eventuali parametri. Pertanto, se hai già dei parametri, ad esempio nonce=626
, l'aggiunta di embed_domain
avrà il seguente aspetto:
/embed/looks/4?nonce=626
/embed/looks/4?embed_domain=https://mywebsite.com?nonce=626
Se utilizzi l'SDK Embed, assicurati di aggiungere embed_domain
e di includere anche sdk=2
alla fine dell'URL di incorporamento, come segue:
/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 perché fa parte dell'URL firmato.
Parametri
I seguenti parametri URL vengono utilizzati per specificare le informazioni necessarie per l'embed firmato:
Parametro | Valore predefinito | Descrizione | Tipo di dati | Esempio |
---|---|---|---|---|
nonce |
Valore obbligatorio | Qualsiasi stringa casuale che preferisci, 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 sotto forma di 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 dell'applicazione in cui è incorporato Looker. Looker utilizza external_user_id per distinguere gli utenti di incorporamento che hanno eseguito l'accesso, 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 un solo 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 al modello diversi.L'utilizzo dello stesso external_user_id per più utenti o per lo stesso utente con più autorizzazioni, attributi utente o insiemi di modelli può causare la visibilità dei dati a utenti che altrimenti non ne avrebbero accesso. |
Stringa JSON | "user-4" |
permissions |
Valore obbligatorio | L'elenco delle autorizzazioni che l'utente deve avere.Consulta la sezione Autorizzazioni in 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 per il gruppo a cui appartiene l'utente nell'applicazione in cui è incorporato Looker, se vuoi.Gli utenti che dispongono dell'autorizzazione per salvare i contenuti e condividono un ID gruppo esterno potranno salvare e modificare i contenuti in una cartella di Looker condivisa denominata "Gruppo". Il parametro external_group_id è l'unico metodo disponibile per creare gruppi esterni di utenti di incorporamento. Non è possibile configurare gruppi di utenti di incorporamento esterni dall'interfaccia utente di Looker. |
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 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" } fa sì che l'embed carichi il francese come lingua. |
Hash di stringhe | { "vendor_id" : "17", "company" : "xactness" } |
access_filters |
Valore obbligatorio | In Looker 3.10 questo parametro è stato rimosso, ma è comunque obbligatorio nell'URL. Utilizza access_filters con un segnaposto vuoto, ad esempio access_filters={} . |
Segnaposto vuoto | {} |
first_name |
"" | Il nome dell'utente. Se lasciato vuoto, first_name manterrà il valore dell'ultima richiesta o sarà "Incorpora" se non è mai stato impostato un nome. |
Stringa JSON | "Alice" |
last_name |
"" | Il cognome dell'utente. Se lasciato vuoto, last_name manterrà il valore dell'ultima richiesta o sarà "Incorpora" se non è mai stato impostato alcun 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 relativa al riferimento al fuso orario per l'inserimento con firma.Suggerimento del team di Chat: se vuoi che i contenuti incorporati vengano visualizzati per impostazione predefinita nel 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" - oppure -null |
force_logout_login |
Valore obbligatorio | Se un normale utente di Looker ha già eseguito l'accesso a Looker e visualizza un elemento incorporato firmato, puoi scegliere se:1) deve visualizzare l'articolo con le credenziali attualio2) devono uscire e accedere di nuovo con le credenziali di incorporamento firmate. | Booleano (true o false) | true |
Firma
Looker utilizza la firma per verificare che sia stato utilizzato il segreto 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 segreto 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 durante il transito e che è stato creato da una terza parte attendibile che è in possesso della chiave segreta di incorporamento.
Per generare la firma, devi seguire questi passaggi.
- Raccogliere i seguenti valori parametro in questo ordine:
- Host, seguito da
login/embed/
(ad esempioanalytics.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)
- 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
Il passaggio finale 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={}&
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
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 (Crea URL di incorporamento firmato), che accetta un insieme di parametri di incorporamento firmato che include l'URL dei contenuti che vuoi 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 autenticarsi 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 API Explorer nella tua istanza Looker dal Looker Marketplace. Una volta generato, l'URL firmato deve essere copiato esattamente e può essere utilizzato una sola volta, altrimenti non andrà a buon fine. Explorer API è utile anche per generare un URL firmato e confrontarlo con un URL firmato creato manualmente a scopo di risoluzione dei problemi.
Per ulteriori informazioni sull'API Looker, consulta la pagina della documentazione Introduzione all'API Looker.
Test dell'URL incorporato
Per testare l'URL finale, incollalo in URI Validator nella pagina Incorpora della sezione Amministrazione di Looker. Sebbene questa opzione non possa dirti se i dati e le autorizzazioni che prevedi sono stati configurati correttamente, può verificare che l'autenticazione funzioni correttamente.