Looker è ottimo nel rendere i dati accessibili a tutti i tuoi utenti o clienti. Come ci piace dire, Looker aiuta a "democratizzare i dati". Puoi consentire agli utenti di visualizzare i risultati delle query autonomamente senza dover richiedere a un analista di creare manualmente una dashboard. Con Looker, gli utenti possono persino eseguire le proprie analisi. Un modo per farlo è utilizzare la funzionalità di embed firmato di Looker. Questa pagina illustra due diversi metodi per implementare l'embed firmato, l'API Looker e l'SDK (Software Development Kit) di Looker.
Supponiamo che tu voglia integrare i risultati della query nell'applicazione o nei sistemi interni della tua azienda e non voler fornire le credenziali Looker a tutti gli utenti. Questo può essere ottenuto con la funzionalità di incorporamento firmato di Looker. Questo è diverso dal riferimento generale ai flussi di lavoro SSO come LDAP o SAML, che possono anche essere integrati nell'istanza Looker.
L'incorporamento firmato con accesso eseguito indica che, una volta creato l'URL di incorporamento e inviata la richiesta dal browser, la sessione Looker dell'utente è iniziata e l'utente ha eseguito l'accesso. Questi URL sono firmati e possono essere utilizzati una sola volta. Questi URL creano iframe che consentono agli sviluppatori di incorporare contenuti come esplorazioni, look e dashboard nel sito web o nell'applicazione della tua azienda. Quando viene utilizzato l'URL, se l'utente non ne ha già uno, ne verrà creato uno in base ai parametri trasmessi nell'URL.
Gli sviluppatori possono utilizzare l'API Looker o gli SDK dell'API Looker per creare dinamicamente questi iframe. Puoi applicare temi e personalizzare i contenuti in base alle esigenze della tua azienda o di un gruppo specifico di utenti. Per saperne di più sul potenziale dell'incorporamento di Looker nei tuoi contenuti, ecco una demo completa con una spiegazione di come questi concetti possono essere applicati.
Da dove inizio?
Supponiamo che tu abbia guardato la demo e voglia esplorare l'aggiunta di questi iframe alla tua applicazione. Da dove iniziare e quale metodo è adatto al tuo caso d'uso?
Looker offre diverse opzioni principali per generare questi contenuti, che possono essere inseriti all'interno della tua applicazione o del tuo sito web:
- Repository di esempio di Looker di script scritti in vari linguaggi di programmazione (C#, Python, Node.js, Python, Ruby, PHP)
- L'endpoint
Create Signed Embed Url
incluso nella nostra API REST, accessibile tramite richieste HTTP o uno dei nostri SDK - SDK Embed di Looker
In genere consigliamo ai clienti l'endpoint Embed SDK e l'API REST anziché gli script di esempio, perché sia l'SDK che l'API REST vengono aggiornati di frequente dai nostri sviluppatori e in genere creano URL più brevi rispetto agli script. Gli URL più brevi sono un po' più facili da gestire. Esistono anche alcune funzionalità di sicurezza utili offerte dall'SDK Embed e dall'endpoint dell'API REST, che verranno discusse più avanti in questa pagina.
Supponiamo di volere che l'utente della nostra app possa visualizzare una dashboard di Looker in una pagina di dati di un'applicazione del cliente. Un flusso di lavoro di incorporamento comune potrebbe essere il seguente:
- L'utente accede a un'applicazione. Può utilizzare un servizio SAML o semplicemente un indirizzo email e una password per accedere all'app.
- L'applicazione conferma che le credenziali sono corrette e che l'utente può accedere correttamente ai contenuti.
- In base alla risposta del flusso di lavoro per l'accesso, le informazioni dell'utente vengono trasmesse a una funzione che può utilizzare uno dei nostri script di esempio per creare l'URL incorporato firmato. Questi script richiedono le autorizzazioni dell'utente, gli ID gruppo, il secret incorporato, l'URL dell'host, gli attributi utente come nome e cognome, filtri di accesso, lunghezza della sessione e l'URL a cui vogliamo che l'utente possa accedere. Tutte queste informazioni vengono inviate a Looker e viene creato un URL firmato.
- L'utente accede alla pagina dei dati nell'applicazione, dove l'URL firmato è inserito in un iframe. Successivamente, il browser soddisfa una richiesta per l'URL dell'iframe. La dashboard si propaga con un'esperienza personalizzata e l'utente può accedere ai dati da Looker all'interno dell'applicazione.
Endpoint Create Signed Embed Url
Utilizzando l'API REST di Looker o uno degli SDK, uno sviluppatore può generare un URL codificato e firmato basato su un set di parametri. Questa è una richiesta POST. Il server da cui ha avuto origine la richiesta dell'API deve essere in grado di autenticarsi in Looker con autorizzazioni di amministratore. Uno dei principali vantaggi dell'utilizzo di questo endpoint è che per utilizzarlo non è necessario un secret incorporato. L'endpoint è già configurato per recuperare il secret di incorporamento corrente. Anche le chiamate a questo endpoint non vengono conteggiate ai fini delle limitazioni di frequenza API. In generale, le credenziali API sono più facili da ruotare rispetto a un segreto incorporato. È possibile attivare più credenziali API 3 contemporaneamente, ma in un'istanza è possibile utilizzare una sola secret di incorporamento alla volta. In questo modo è più facile scambiare le credenziali senza interruzioni del servizio. L'endpoint Create Signed Embed Url
crea anche un URL più breve e conciso rispetto agli script di esempio nel nostro repository di script di URL di incorporamento firmati.
Ecco un esempio di flusso di lavoro che utilizza l'endpoint Create Signed Embed Url
:
- L'utente tenta di accedere alla tua applicazione, nella maggior parte dei casi con una combinazione di nome utente e password o eventualmente tramite un provider di identità (IdP).
- Se accedono correttamente all'applicazione, viene eseguito l'endpoint
Create Signed Embed Url
. Una funzione creata dal tuo team di sviluppo passa le credenziali specifiche dell'utente a questo endpoint e Looker restituisce un URL firmato al server. - L'utente potrebbe avere la possibilità di fare clic su una scheda dei dati nell'applicazione. Quando l'utente apre la scheda dei dati, la pagina richiede l'URL firmato al server e lo inserisce nell'iframe della pagina.
- L'utente vede una dashboard di Looker inserita perfettamente in un iframe nella tua applicazione con dati in tempo reale.
Incorpora SDK
L'SDK Embed di Looker è una raccolta di funzioni JavaScript pacchettizzate per semplificare l'incorporamento dei contenuti di Looker per gli sviluppatori. L'SDK Embed ti consente di aggiungere contenuti di Looker a una pagina della tua applicazione o del tuo sito web senza dover creare elementi HTML specifici. L'SDK consente agli sviluppatori di creare una comunicazione point-to-point sicura tra la pagina HTML e i contenuti di Looker. Ora l'SDK Embed incapsula l'iframe, impedendo ai clienti di crearlo o gestirlo. L'SDK Embed è destinato solo alle app browser, ma include una funzione di utilità di supporto per generare l'URL firmato. Entrambi sono disponibili in TypeScript e Python. Anche se l'SDK Embed è disponibile nel registry nmpjs, non è necessario utilizzare un server web Node.js.
Una caratteristica unica dell'SDK Embed è che consente anche di sfruttare i componenti di Looker, una raccolta di blocchi di codice riutilizzabili creati per semplificare l'implementazione del sistema di progettazione di Looker.
Un altro vantaggio dell'SDK Embed è il numero di funzioni predefinite che semplificano notevolmente il lavoro del team di sviluppo. Uno degli esempi principali è l'annullamento dei clic. L'SDK Embed utilizza l'API MessageChannel
anziché postMessage
. Ciò significa che due script in esecuzione nella stessa pagina possono comunicare tra loro utilizzando l'API postMessage
. In questo modo, altre funzioni possono comunicare con l'iframe o altre funzioni possono comunicare con l'iframe.
Un esempio di flusso di lavoro per l'SDK Embed potrebbe essere il seguente:
- L'utente tenta di accedere alla tua applicazione.
- Se l'accesso viene eseguito correttamente, le informazioni vengono inviate all'utilità helper
Node.js
sul server che esegue l'applicazione. Le informazioni richieste vengono passate all'istanza di Looker e viene restituito un URL firmato. - L'utente accede alla pagina dei dati nell'applicazione in cui viene utilizzato l'SDK Embed per posizionare l'iframe. Poiché l'SDK Embed è scritto in JavaScript, possiamo utilizzare
LookerEmbedSDK.createDashboardWithId
e scegliere come target un elemento DOM specifico (di solito uno span o un div) nella pagina a cui aggiungere l'iframe (URL firmato). - La pagina viene caricata e l'URL firmato carica la dashboard dall'istanza di Looker.
Quindi, qual è il metodo migliore?
Il metodo utilizzato dal team di sviluppo dipende dal caso d'uso specifico:
Come mostrato nel diagramma precedente, sia il metodo endpoint Create Signed Embed Url
sia il metodo di incorporamento dell'SDK descritti in precedenza consentono al team di sviluppo di concentrarsi sul prodotto anziché sull'integrazione di Looker con l'app. Entrambi i metodi consentono inoltre di usufruire di esperienze con dati avanzati nella tua applicazione nativa.
Il metodo dell'endpoint Create Signed Embed Url
è diverso dal metodo dell'SDK Embed nei seguenti modi:
- Non è necessario un secret di incorporamento.
- Il processo è simile all'utilizzo di altre API REST.
- L'endpoint deve essere chiamato lato server.
Il metodo Embed SDK ha le seguenti funzionalità:
- È basato su JavaScript e può scegliere come target specifici elementi DOM.
- Interagisce con i componenti di Looker per definire lo stile dell'interfaccia utente.
- Si integra con le funzioni di utilità di supporto e lo sviluppo può essere eseguito lato client.
Se hai domande specifiche sui requisiti di sviluppo o architettura, puoi contattare il team dei servizi professionali di Looker o uno dei nostri partner di sviluppo.
Inoltre, il nostro team di assistenza può aiutarti a risolvere eventuali problemi di alto livello o comportamenti imprevisti. Puoi aprire una richiesta di assistenza nel Centro assistenza Looker facendo clic su Contattaci.
Per ulteriori risorse, consulta il post della scheda Community sugli strumenti di incorporamento firmati e le risorse per la risoluzione dei problemi.