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 contenuti di Looker per i clienti, configura i contenuti dei clienti su un'istanza di Looker separata da quella che utilizzi per l'analisi interna.
- Collega i dati solo all'istanza incorporata di Looker che deve essere accessibile agli utenti incorporati, che potrebbero essere pubblici.
- Proteggi i token casuali all'interno degli URL di incorporamento pubblici come se fossero credenziali utente e disattiva gli URL pubblici se non vengono utilizzati.
- Un valore
external_user_idassegnato deve essere univoco per ogni insieme specifico di autorizzazioni, attributi utente e modelli. Assicurati di non utilizzare lo stessoexternal_user_idin sessioni di incorporamento diverse per utenti interattivi diversi e di non utilizzare lo stessoexternal_user_idper un singolo utente con autorizzazioni, valori degli attributi utente o accesso al modello diversi. - Attiva un sistema chiuso.
- Proteggi il segreto di incorporamento firmato come se fossero credenziali di amministratore per la tua istanza di Looker incorporata e mantieni l'incorporamento firmato disattivato se non lo utilizzi.
- Utilizza l'autenticazione avanzata per le istanze incorporate di Looker (incorporamento firmato, SAML, Google OAuth, 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 incorporata. Il token di riferimento della sessione non deve mai essere esposto nel browser.
- Se utilizzi l'incorporamento senza cookie e imposti il dominio di incorporamento consentito durante l'acquisizione della sessione senza cookie, non considerare mai attendibile l'origine dal browser dell'utente che incorpora. Mantieni sempre una mappatura dell'utente incorporato all'origine attendibile dell'utente incorporato nel server delle applicazioni incorporate.
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 qualsiasi 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 della ricerca o importare i dati nelle applicazioni di fogli di lavoro Google o Excel.
L'URL e l'URL incorporato all'interno del tag iframe contengono un token casuale e non possono essere indovinati, ma chiunque abbia l'URL incorporato può accedere ai dati e non vengono applicati filtri o restrizioni 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 URL pubblici.
Gli URL pubblici e gli URL di incorporamento pubblici 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 l'accesso a Looker per visualizzare i contenuti.
Gli utenti autenticati possono accedere solo ai contenuti dettati dalle autorizzazioni Looker assegnate. Se modifichi le autorizzazioni in Looker, l'URL di incorporamento non cambia, ma ciò che l'utente può vedere quando accede all'URL potrebbe 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 all'istanza di Looker e a questi dati, l'invio di un link non dovrebbe causare problemi di sicurezza.
Incorporamento firmato
Per aggiornare la licenza per questa funzionalità, contatta un esperto delle vendite di Google Cloud.
L'incorporamento firmato fa un ulteriore passo avanti rispetto all'incorporamento privato. L'incorporamento firmato 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 ed emette un cookie per il browser.
Le autorizzazioni, gli identificatori e gli attributi utente vengono tutti trasmessi come parametri all'interno dell'URL, che viene firmato con una chiave segreta. Chiunque abbia accesso alla chiave segreta può creare un URL per accedere a qualsiasi modello a cui è connessa l'istanza di Looker, come qualsiasi utente, con qualsiasi autorizzazione. Consulta il nostro esempio di codice 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 senza la conoscenza o il consenso dell'utente, ad esempio un pulsante che sembra fare qualcos'altro. Il clickjacking di solito richiede un URL statico. L'URL generato per un incorporamento firmato è segreto e deve essere in possesso solo dell'utente che visualizza l'incorporamento. L'utilizzo dell'incorporamento firmato non aumenta il rischio di clickjacking per il sito web esterno.
Parametri di incorporamento firmato
I parametri inclusi nell'URL dell'iframe sono visibili agli utenti che incorporano il video, ma non sono modificabili. Tra questi figurano:
user_attributes: vengono utilizzati per filtrare ulteriormente i dati.user_attributessono potenti, quindi valuta come potrebbero essere applicati alla tua istanza Looker.session_length: mantieni questo valore al minimo necessario.
Alcuni parametri, come user_attributes, possono essere nascosti nell'interfaccia utente, ma vengono comunque codificati nell'URL incorporato. 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 questo problema è creare un gruppo temporaneo, impostare la password come attributo a livello di gruppo e quindi passare l'ID gruppo nell'URL incorporato. Puoi eliminare il gruppo dopo la sessione di incorporamento per evitare un numero eccessivo di gruppi scaduti.
La parte firmata dell'URL contiene un timestamp. Una volta utilizzato l'URL per l'accesso, l'ora deve essere +/- 5 minuti rispetto all'ora corrente. Puoi specificare in session_length la durata della sessione di incorporamento dal momento in cui l'URL viene utilizzato per accedere.
Gestione dell'accesso all'incorporamento firmato
Quando crei l'URL per i tuoi contenuti incorporati:
- Utilizza il livello più basso di autorizzazioni necessario.
- Assegna l'accesso solo ai modelli specifici a cui l'utente deve poter accedere.
- Utilizza
group_idsper assegnare un utente a un gruppo e consentire all'utente incorporato di controllare l'accesso alla propria cartella Looker.
API Looker
L'API Looker consente di abilitare l'accesso ai contenuti incorporati utilizzando un'applicazione proxy o un server reverse proxy. In questo scenario, l'autenticazione viene eseguita utilizzando chiavi API associate a un utente specifico e che 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'incorporamento utilizzando l'API
Quando abiliti l'accesso ai contenuti incorporati utilizzando l'API di Looker, ti consigliamo di:
- Creazione di service account dedicati per l'accesso programmatico all'API con il set minimo di privilegi necessari.
- Proteggere l'ID client e il client secret che compongono la chiave API (se l'autenticazione avviene con un SDK).
Gli attributi utente impostati per gli utenti incorporati utilizzando l'API, ma non specificati nell'URL incorporato firmato, vengono reimpostati sui valori predefiniti al successivo accesso all'URL incorporato firmato.
Eventi JavaScript incorporati
Dopo aver configurato l'iframe incorporato (pubblicamente, privatamente, con l'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 agli eventi JavaScript.
Se utilizzi la funzione JavaScript eval, assicurati che il valore della stringa nell'argomento eval provenga da una fonte attendibile, ad esempio il server o la CDN di Looker, e che sia in trasporto HTTPS.
Nessun dato del cliente passa mai attraverso le CDN di Looker. Dalla CDN vengono pubblicati solo gli asset statici dell'applicazione web Looker: codice JavaScript, pagine HTML e stili CSS.
Deployment ospitati dal cliente
L'hosting della tua istanza di Looker può sembrare il modo più sicuro per bloccare l'accesso ai dati, in particolare ai contenuti incorporati. Tuttavia, se gli utenti devono accedere all'URL di incorporamento su internet, non ci sono vantaggi particolari nell'ospitare Looker autonomamente.
I deployment ospitati dal cliente possono essere più appropriati quando:
- I tuoi utenti non sono tenuti ad accedere a Looker utilizzando internet.
- Stai utilizzando Looker e accedendo ai contenuti incorporati tramite l'API.