L'incorporamento firmato è un modo per presentare Look, visualizzazioni, esplorazioni, dashboard o dashboard LookML privati incorporati senza richiedere agli utenti di disporre di credenziali di accesso separate a Looker. Gli utenti verranno autenticati tramite la tua applicazione.
L'incorporamento firmato funziona creando uno speciale URL di Looker 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 concedere all'utente. Dopodiché, firmerai 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 attivare l'incorporamento firmato nel pannello di amministrazione di Looker e creare una chiave segreta per l'incorporamento. Per le istruzioni, consulta la pagina di documentazione Guida introduttiva all'incorporamento: attivazione dell'incorporamento firmato.
Hosting appropriato 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 una norma sui cookie che blocca i cookie di terze parti. Quando la funzionalità Incorporamento senza cookie è attivata, 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 relativa all'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 nei domini non è possibile 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 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à del cliente 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 di una dashboard o nel menu a forma di ingranaggio delle azioni di Esplora di un Look o di un'esplorazione.
Utilizza l'endpoint API di Looker per creare l'URL di incorporamento firmato, come descritto più avanti in questo documento.
Utilizza l'SDK Embed di Looker.
Codifica l'URL di incorporamento firmato. La creazione dell'URL corretto richiede la scrittura di codice per codificare correttamente l'URL con la chiave segreta e generare altri elementi correlati 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 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 e poi crea l'URL di incorporamento firmato.
Raccolta delle informazioni necessarie di Looker
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. 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 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 una 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, utilizzando ad esempio il metodo Get Query . |
/embed/query-visualization/Query.client_id |
Dashboard definita dall'utente | https://instance_name.looker.com/dashboards/1 Includi eventuali valori dei filtri del report o, se nascondi i valori dei filtri, il parametro hide_filter nell'URL del report. |
|
Dashboard legacy 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 legacy | 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 incorporamento.
Autorizzazioni
Un set di autorizzazioni definisce cosa può fare un utente o un gruppo. Le autorizzazioni possono essere applicate in due modi:
- Specifico per il 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 assegnare 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 |
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 incorporamento |
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 | Necessario 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'invio di 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 le condizioni specificate. Gli utenti possono modificare, duplicare ed eliminare i propri avvisi e quelli pubblici di altri utenti. Se l'area di lavoro 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 |
see_sql |
see_looks |
Specifico per il modello | Consente all'utente di visualizzare l'SQL per le query e gli eventuali errori SQL derivanti 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 eseguire il drill-down 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 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 incorporamento. A qualsiasi utente incorporato a cui viene concessa l'autorizzazione embed_browse_spaces viene dato accesso a una cartella di incorporamento personale e alla cartella 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 incorporati che vogliono contrassegnare dashboard o Look come preferiti, poiché il contrassegno dei contenuti come preferiti richiede 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 Condivisa dell'organizzazione, se presente, dalla finestra di dialogo Salva. Gli utenti che dispongono dell'autorizzazione save_content , ma non di quella embed_save_shared_space , avranno solo la possibilità di salvare i contenuti nella cartella personale degli incorporamenti.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 Condivisa di salvarvi contenuti se ha un modo alternativo per accedere alla cartella Condivisa, ad esempio utilizzando l'opzione Esplora da qui da una dashboard incorporata. |
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. Avrai bisogno del nome dell'attributo utente di Looker, nonché del valore che l'utente deve avere per quell'attributo.
Gruppi
Determina gli eventuali gruppi a cui l'utente deve appartenere. Avrai bisogno degli ID gruppo anziché dei nomi dei gruppi. 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 con firma 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 della sezione Amministrazione di Looker. Se i parametri permissions
, models
e group_ids
sono tutti specificati nell'URL di incorporamento, il ruolo incorporato è additivo rispetto a qualsiasi ruolo già assegnato ai gruppi elencati nel parametro group_ids
. Come per i ruoli standard, 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
. 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 incorporato
Un URL di incorporamento firmato ha il seguente formato:
https://HOST/login/embed/EMBED URL?PARAMETERS&signature=SIGNATURE
Host
L'host è la posizione in cui viene ospitata l'istanza di Looker. Ad esempio, analytics.mycompany.com
. Assicurati di includere il numero di porta se non hai attivato l'inoltro delle porte, ad esempio analytics.mycompany.com:9999
.
Incorpora URL
L'URL incorporato è stato determinato in precedenza. Avrà un formato 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, il che è corretto.
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, in questo modo:
/embed/looks/4
/embed/looks/4?embed_domain=https://mywebsite.com
embed_domain
viene aggiunto dopo l'URL incorporato e prima di qualsiasi parametro. Quindi, se avevi parametri esistenti, ad esempio nonce=626
, l'aggiunta di embed_domain
avrebbe il seguente aspetto:
/embed/looks/4?nonce=626
/embed/looks/4?embed_domain=https://mywebsite.com?nonce=626
Se utilizzi l'SDK incorporato, assicurati di aggiungere embed_domain
e includi 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 | 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 incorporati con 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 solo una external_user_id o sessione utente alla volta. Non è possibile apportare modifiche alle autorizzazioni o agli attributi di un 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 al modello 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 visibili i dati a utenti che altrimenti non 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 Looker di cui l'utente deve far parte, 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 contenuti e che condividono un ID gruppo esterno possono salvare e modificare i contenuti in una cartella condivisa di Looker 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. Per il gruppo viene creata una cartella corrispondente 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 100 caratteri 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 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à "Embed" se non è mai stato impostato un cognome. |
Stringa JSON | "Jones" |
user_timezone |
"" | Se hai attivato l'opzione Fusi orari specifici degli utenti, imposta il valore dell'opzione Fuso orario del visualizzatore nel menu a discesa Fuso orario del Look o della dashboard incorporati. Questo parametro non modifica direttamente il fuso orario in cui vengono visualizzati i contenuti. L'utente dovrà selezionare un fuso orario dal menu a discesa.Consulta i valori validi nella pagina della documentazione Riferimento al fuso orario per l'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) Visualizzare l'elemento con le credenziali attuali.o2) devono aver eseguito la disconnessione e l'accesso con le credenziali di incorporamento firmate. | Booleano (true o false) | true |
Firma
Looker utilizza la firma per verificare che sia stata utilizzata la chiave segreta di incorporamento corretta 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 parte attendibile in possesso della chiave segreta di incorporamento.
Per generare la firma, devi seguire questi passaggi.
- Raccogli i seguenti valori dei parametri 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)
- Host, seguito da
- Formatta tutti i valori diversi da Host e URL di incorporamento come JSON
- Concatenare i valori con interruzioni di riga (
\n
) - HMAC-SHA1 firma la 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 incorporato formattato correttamente che utilizza tutti i parametri possibili potrebbe avere questo 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/
appaia nel tuo URL.
Dopo la codifica, l'URL avrà questo 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 Crea URL di incorporamento firmato, che accetta un insieme di parametri di incorporamento firmati 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 di amministratore. 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 nella tua istanza Looker da 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 incorporato
Per testare l'URL finale, incollalo in Embed URI Validator nella pagina Incorpora della sezione Amministrazione di Looker. Anche se questa opzione non può indicarti se i dati e le autorizzazioni che prevedi sono stati configurati correttamente, può convalidare il corretto funzionamento dell'autenticazione.