Best practice per la sicurezza per analisi incorporate

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, richiedendo solo i dati necessari per visualizzare la query. Progettato, un iframe non è autorizzato a leggere o scrivere dati dal sito web o dall'applicazione esterni.

L'incorporamento dei dati può presentare problemi di privacy o di sicurezza. Per mitigare questi problemi, consigliamo agli amministratori di Looker di seguire queste best practice:

  • Se vuoi incorporare i contenuti di Looker ai clienti, configura questi ultimi in un'istanza di Looker separata dall'istanza che utilizzi per l'analisi interna.
  • Collega i dati all'istanza incorporata di Looker che dovrebbe essere accessibile agli utenti di incorporamento, 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_id assegnato deve essere univoco per ogni insieme di autorizzazioni, attributi utente e modelli. Assicurati di non utilizzare lo stesso external_user_id in diverse sessioni di incorporamento per diversi utenti interattivi e di non utilizzare lo stesso external_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 SSO come se fossero credenziali di amministratore per la tua istanza di Looker incorporata e mantieni disabilitato l'incorporamento per SSO se non lo usi.
  • Utilizza un'autenticazione avanzata per le istanze incorporate di Looker (SSO, SAML, Google OAuth, 2FA).

Looker offre diversi tipi di metodi di incorporamento a seconda del livello di autenticazione richiesto dagli utenti che accedono ai tuoi dati: pubblico, privato e Single Sign-On. Con uno qualsiasi di questi metodi, puoi interagire con l'iframe utilizzando JavaScript.

Incorporamento pubblico

Se hai abilitato l'opzione Accesso pubblico di Look,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 nelle applicazioni per fogli di lavoro Google o Excel.

L'URL e l'URL per l'incorporamento all'interno del tag iframe contengono un token casuale e non possono essere indovinare, ma chiunque abbia l'URL di incorporamento può accedere ai dati e non vengono applicati ulteriori filtri o limitazioni. Consigliamo di tenere conto delle implicazioni relative alla 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 pubblici non hanno scadenza e non possono essere revocati. Quando condividi un URL pubblico, condividi la query e non i dati effettivi.

Incorporamento privato

Se non vuoi consentire l'accesso pubblico al tuo look, puoi anche incorporare un Look (o un'esplorazione o una dashboard) privatamente in un iframe, in modo da disporre di un accesso Looker per visualizzare i contenuti.

Gli utenti autenticati possono accedere solo ai contenuti dettati dalle autorizzazioni di Looker assegnate agli utenti. Se modifichi le sue autorizzazioni in Looker, l'URL di incorporamento non cambia, ma ciò che l'utente può vedere quando accede all'URL può 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 hanno scadenza e non possono essere revocati. Tuttavia, poiché il link funziona solo per chi ha accesso alla tua istanza di Looker e per quei dati, l'invio di un link non dovrebbe provocare problemi di sicurezza.

Incorporamento Single Sign-On

Contatta il tuo account manager per aggiornare la licenza per questa funzionalità.

L'incorporamento con Single Sign-On rappresenta un ulteriore passo avanti rispetto all'incorporamento privato. L'incorporamento tramite SSO non richiede l'autenticazione da parte di utenti tramite un account utente Looker. Possono invece essere autenticati tramite la tua applicazione tramite l'URL in un iframe. L'autenticazione crea una nuova sessione del browser e invia un cookie al browser.

Le autorizzazioni, gli identificatori e gli attributi degli utenti vengono passati tutti come parametri all'interno dell'URL, che vengono firmati con una chiave segreta. Chiunque abbia accesso alla chiave secret può creare un URL per accedere a qualsiasi modello a cui è collegata un'istanza di Looker, come qualsiasi utente, con qualsiasi autorizzazione. Vedi 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 compiere un'altra operazione. Il clickjacking richiede in genere un URL statico. L'URL generato per un incorporamento SSO è segreto e solo l'utente che lo visualizza deve averlo. L'utilizzo dell'incorporamento SSO non aumenta il rischio di clickjacking sul sito web esterno.

Parametri di incorporamento SSO

I parametri inclusi nell'URL iframe sono visibili agli utenti, ma non sono modificabili. Tra questi figurano:

  • user_attributes: vengono utilizzati per filtrare ulteriormente i dati. user_attributes è molto efficace, quindi valuta come applicarlo alla tua istanza di Looker.
  • session_length: mantieni questo valore al minimo indispensabile.

Alcuni parametri, come user_attributes, possono essere nascosti nell'interfaccia utente ma potrebbero comunque essere codificati nell'URL di incorporamento. Ciò potrebbe essere indesiderato se, ad esempio, una password è un valore compreso nel campo user_attribute di un utente. Un modo per ovviare a questo problema è creare un gruppo temporaneo, impostare la password come attributo a livello di gruppo e poi trasmettere l'ID gruppo nell'URL di incorporamento. Puoi eliminare il gruppo dopo la sessione di incorporamento per evitare un eccesso di gruppi non più attivi.

La parte firmata dell'URL contiene un timestamp. Una volta utilizzato l'URL per accedere, l'ora deve essere +/- 5 minuti rispetto all'ora corrente. Puoi specificare in session_length la durata della sessione di incorporamento a partire da quando viene utilizzato l'URL per accedere.

Gestione dell'accesso all'incorporamento SSO

Quando crei l'URL dei contenuti incorporati:

  • Utilizza il livello minimo di autorizzazioni necessario.
  • Assegna l'accesso solo ai modelli specifici a cui l'utente deve essere in grado di accedere.
  • Utilizza group_ids per assegnare un utente a un gruppo e consentire all'utente di incorporarlo di controllare l'accesso alla propria cartella Looker.

API Looker

L'API Looker consente di abilitare l'accesso ai contenuti incorporati tramite un'applicazione proxy o un server proxy inverso. In questo scenario, l'autenticazione viene eseguita tramite chiavi API3, associate a un utente specifico e che dispone delle stesse autorizzazioni dell'utente che le genera. Le chiavi API3 sono composte da un ID client e da una chiave client secret.

Gestione dell'accesso per l'incorporamento tramite API

Quando abiliti l'accesso ai contenuti incorporati utilizzando l'API di Looker, ti consigliamo di:

  • Creare account di servizi dedicati per l'accesso all'API di pubblicità programmatica con il set minimo di privilegi necessari.
  • Proteggere l'ID client e il client secret che costituiscono la chiave API3 (se l'autenticazione avviene con un SDK).

Al successivo accesso dell'URL SSO, tutti gli attributi utente impostati per l'incorporamento di utenti tramite l'API, ma non specificati nell'URL SSO, verranno ripristinati ai valori predefiniti.

Eventi JavaScript incorporati

Dopo aver configurato l'iframe dell'iframe, pubblicamente, privatamente, con SSO o tramite l'API, puoi interagire con quell'iframe tramite JavaScript. Per verificare che le informazioni su cui lavori provengono 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 JavaScript eval, assicurati che il valore della stringa nell'argomento eval provenga da un'origine attendibile, come il server o la CDN di Looker, e sia in modalità di trasporto HTTPS.

I dati dei clienti non passano mai attraverso le CDN di Looker. Solo gli asset statici per applicazioni web di Looker, come il codice JavaScript, le pagine HTML e gli stili CSS, vengono pubblicati da CDN.

Deployment ospitati dal cliente

L'hosting della tua istanza Looker può sembrare il modo sicuro per bloccare l'accesso ai dati, in particolare i contenuti incorporati. Tuttavia, se gli utenti hanno bisogno di accedere all'URL di incorporamento su Internet, non esistono vantaggi speciali di hosting di Looker.

Le implementazioni ospitate dal cliente possono essere più appropriate quando:

  • I tuoi utenti non devono accedere a Looker tramite Internet.
  • Stai eseguendo il front-end di Looker e accedi a contenuti incorporati tramite API.