Con l'analisi incorporata di Looker, puoi consentire a utenti e clienti di esplorare i dati incorporati in un iframe in qualsiasi pagina web, portale o applicazione in formato HTML. L'iframe esegue l'intera applicazione Looker e richiede solo i dati necessari per visualizzare la query. Per impostazione predefinita, un iframe non è autorizzato a leggere o scrivere dati dal sito web o dall'applicazione esterni.
L'incorporamento dei dati a volte può causare problemi di privacy o sicurezza. Per ridurre al minimo questi inconvenienti, consigliamo agli amministratori di Looker di seguire queste best practice:
- Se incorpori i contenuti di Looker per i clienti, configura i contenuti dei clienti in un'istanza di Looker separata da quella che utilizzi per l'analisi interna.
- Collega all'istanza di Looker incorporata solo i dati che devono essere accessibili agli utenti di incorporamento, che potrebbero essere il pubblico.
- Proteggi i token casuali all'interno degli URL di incorporamento pubblico come se fossero credenziali utente e disattiva gli URL pubblici se non vengono utilizzati.
- Un valore
external_user_id
assegnato deve essere univoco per ogni insieme di autorizzazioni, attributi utente e modelli. Assicurati di non utilizzare lo stessoexternal_user_id
in sessioni di incorporamento diverse per utenti interattivi diversi e di non utilizzare lo stessoexternal_user_id
per un singolo utente con autorizzazioni, valori degli attributi utente o accesso al modello diversi. - Attiva un sistema chiuso.
- Proteggi il secret di incorporamento firmato come se fossero le credenziali di amministratore della tua istanza di Looker incorporata e mantieni l'inserimento di annunci con firma disattivato se non lo utilizzi.
- Utilizza l'autenticazione avanzata per le istanze incorporate di Looker (embedding firmato, SAML, OAuth di Google, 2FA).
- Se utilizzi l'incorporamento senza cookie, proteggi il token di riferimento della sessione in modo che sia accessibile solo nel server host dell'applicazione di incorporamento. Il token di riferimento della sessione non deve mai essere esposto nel browser.
- Se utilizzi l'embed senza cookie e imposti il dominio di incorporamento consentito durante l'acquisizione della sessione senza cookie, non considerare mai attendibile l'origine del browser dell'utente che esegue l'embed. Mantieni sempre una mappatura dell'utente di incorporamento all'origine attendibile dell'utente di incorporamento nel server dell'applicazione di incorporamento.
Looker offre diversi tipi di metodi di incorporamento a seconda del livello di autenticazione richiesto agli utenti che accedono ai tuoi dati: pubblico, privato e incorporamento firmato. Con uno di questi metodi, puoi interagire con l'iframe utilizzando JavaScript.
Incorporamento pubblico
Se l'opzione Accesso pubblico di un look è attivata,puoi incorporare una visualizzazione o una tabella di dati in un sito web esterno utilizzando un tag iframe HTML. Puoi anche condividere pubblicamente l'URL di Look o importare i dati in applicazioni di fogli di lavoro Google o Excel.
L'URL e l'URL di incorporamento all'interno del tag iframe
contengono un token casuale e non possono essere indovinati, ma chiunque disponga dell'URL di incorporamento può accedere ai dati e non vengono applicati filtri o limitazioni aggiuntivi. Ti consigliamo di valutare le implicazioni per la sicurezza della creazione e della condivisione di un URL pubblico per un determinato look prima di attivare gli URL pubblici.
Gli URL pubblici e gli URL di incorporamento pubblico non scadono mai e non possono essere revocati. Quando condividi un URL pubblico, condividi la query,non i dati effettivi.
Incorporamento privato
Se non vuoi consentire l'accesso pubblico al tuo look, puoi anche incorporare un look, un'esplorazione o una dashboard in privato in un iframe, in modo che sia necessario un accesso a Looker per visualizzare i contenuti.
Gli utenti autenticati possono accedere solo ai contenuti indicati dalle autorizzazioni di Looker assegnate. Se modifichi le autorizzazioni in Looker, l'URL di incorporamento non cambia, ma i contenuti che l'utente può visualizzare quando accede all'URL potrebbero cambiare.
Se l'utente non è autenticato, puoi mostrare un errore o una schermata di accesso nell'iframe. Tuttavia, l'attivazione di una schermata di accesso nell'iframe non è compatibile con le protezioni della stessa origine di Looker.
Gli URL di incorporamento privati non scadono mai e non possono essere revocati. Tuttavia, poiché il link funziona solo per chi ha accesso alla tua istanza di Looker e a questi dati, l'invio di un link non dovrebbe causare problemi di sicurezza.
Incorporamento firmato
Contatta un esperto delle vendite di Google Cloud per aggiornare la licenza per questa funzionalità.
L'incorporamento firmato fa un ulteriore passo avanti rispetto all'incorporamento privato. L'inserimento di annunci con firma non richiede agli utenti di autenticarsi utilizzando un account utente Looker. Possono invece essere autenticati tramite la tua applicazione utilizzando l'URL in un iframe. L'autenticazione crea una nuova sessione del browser e emette un cookie per il browser.
Le autorizzazioni, gli identificatori e gli attributi utente vengono trasmessi come parametri all'interno dell'URL, che è firmato con una chiave segreta. Chiunque abbia accesso alla chiave segreta può creare un URL per accedere a qualsiasi modello a cui è collegata l'istanza di Looker, come qualsiasi utente, con qualsiasi autorizzazione. Consulta il nostro codice di esempio per scoprire come generare URL firmati.
Il clickjacking è un problema di sicurezza del browser che può verificarsi quando il codice incorporato o uno script esegue una funzione a insaputa o senza il consenso dell'utente, ad esempio un pulsante che sembra fare qualcos'altro. Il clickjacking richiede in genere un URL statico. L'URL generato per un incorporamento firmato è segreto e deve essere disponibile solo per l'utente che visualizza l'incorporamento. L'utilizzo dell'inserimento firmato non aumenta il rischio di clickjacking per il sito web esterno.
Parametri di incorporamento firmati
I parametri inclusi nell'URL iframe sono visibili agli utenti che eseguono l'embed, ma non sono modificabili. Tra questi figurano:
user_attributes
: vengono utilizzati per filtrare ulteriormente i dati.user_attributes
sono potenti, quindi valuta come potrebbero essere applicati alla tua istanza Looker.session_length
: limita questa operazione al tempo minimo necessario.
Alcuni parametri, come user_attributes
, possono essere nascosti nell'interfaccia utente, ma vengono comunque codificati nell'URL di incorporamento. Ciò potrebbe non essere auspicabile se, ad esempio, una password è un valore all'interno di un user_attribute
di un utente. Un modo per aggirare il problema è creare un gruppo temporaneo, impostare la password come attributo a livello di gruppo e poi passare l'ID gruppo nell'URL di incorporamento. Puoi eliminare il gruppo dopo la sessione di incorporamento per evitare un eccesso di gruppi scaduti.
La parte firmata dell'URL contiene un timestamp. Una volta utilizzato l'URL per accedere, l'ora deve essere compresa tra +/- 5 minuti dall'ora corrente. In session_length
puoi specificare la durata della sessione di incorporamento dal momento in cui viene utilizzato l'URL per accedere.
Gestione dell'accesso all'embed firmato
Quando crei l'URL per i contenuti incorporati:
- Utilizza il livello più basso di autorizzazioni necessarie.
- Assegna l'accesso solo ai modelli specifici a cui l'utente deve poter accedere.
- Utilizza
group_ids
per assegnare un utente a un gruppo e consentire all'utente incorporato di controllare l'accesso alla propria cartella di Looker.
API Looker
L'API Looker consente di abilitare l'accesso ai contenuti incorporati tramite un'applicazione proxy o un server reverse proxy. In questo scenario, l'autenticazione viene eseguita utilizzando le chiavi API, che sono associate a un utente specifico e dispongono delle stesse autorizzazioni dell'utente che le genera. Le chiavi API sono composte da un ID client e da una chiave client secret.
Gestione dell'accesso all'embed utilizzando l'API
Quando abiliti l'accesso ai contenuti incorporati utilizzando l'API di Looker, ti consigliamo di:
- Creare account di servizio dedicati per l'accesso programmatico all'API con l'insieme minimo di privilegi necessari.
- Proteggere l'ID cliente e il client secret che compongono la chiave API (se l'autenticazione avviene con un SDK).
Tutti gli attributi utente impostati per gli utenti incorporati che utilizzano l'API, ma non specificati nell'URL di incorporamento firmato, vengono reimpostati sui valori predefiniti al successivo accesso all'URL di incorporamento firmato.
Eventi JavaScript incorporati
Dopo aver configurato l'iframe incorporato, pubblicamente, privatamente, con incorporamento firmato o tramite l'API, puoi interagire con l'iframe utilizzando JavaScript. Per verificare che le informazioni con cui stai lavorando provengano effettivamente dall'iframe di Looker, puoi ascoltare gli eventi JavaScript.
Quando aggiungi domini alla lista consentita, utilizza il carattere jolly per consentire solo a sottodomini specifici di accedere ai tuoi eventi JavaScript.
Se utilizzi la funzione eval
di JavaScript, assicurati che il valore di stringa nell'argomento eval
provenga da una fonte attendibile, ad esempio il server o la CDN di Looker, e che sia sottoposto al trasporto HTTPS.
Nessun dato dei clienti viene mai trasmesso tramite le CDN di Looker. Solo gli asset statici dell'applicazione web Looker (codice JavaScript, pagine HTML, stili CSS) vengono pubblicati dalla CDN.
Deployment ospitati dal cliente
L'hosting della tua istanza di Looker potrebbe sembrare il modo infallibile per bloccare l'accesso ai dati, in particolare ai contenuti incorporati. Tuttavia, se i tuoi utenti devono accedere all'URL di incorporamento tramite internet, non ci sono vantaggi speciali nell'hosting di Looker.
Gli implementazioni ospitate dal cliente potrebbero essere le più appropriate quando:
- Gli utenti non sono tenuti ad accedere a Looker tramite internet.
- Utilizzi Looker come frontend e accedi ai contenuti incorporati utilizzando l'API.