Best practice per la sicurezza per l'analisi incorporata

Grazie alla potenza di Looker (PBL), la funzionalità di analisi incorporata di Looker puoi consentire ai tuoi 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. Per progettazione, un iframe non è autorizzato a leggere o scrivere dati dal tuo sito web o dalla tua applicazione esterna.

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

  • Se incorpori i contenuti di Looker ai clienti, configurali in un'istanza di Looker separata dall'istanza che utilizzi per le analisi interne.
  • Collega solo i dati all'istanza di Looker incorporata che dovrebbe essere accessibile agli utenti incorporati che potrebbero essere pubblici.
  • Proteggi i token casuali negli 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 sessioni di incorporamento diverse per utenti interattivi diversi e di non utilizzare lo stesso external_user_id per un singolo utente con autorizzazioni, valori di attributi utente o accesso ai modelli diversi.
  • Attiva un sistema chiuso.
  • Proteggi il secret di incorporamento SSO come se fossero credenziali di amministratore per l'istanza di Looker incorporata e mantieni disattivato l'incorporamento SSO se non lo utilizzi.
  • Utilizza un'autenticazione forte 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 agli utenti che accedono ai tuoi dati: pubblico, privato e Single Sign-On. Con uno di questi metodi puoi interagire con l'iframe utilizzando JavaScript.

Incorporamento pubblico

Se l'opzione Accesso pubblico di Look è abilitata,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 Look o importare i dati nelle applicazioni per 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 intuiti, ma chiunque abbia l'URL di incorporamento può accedere ai dati e non vengono applicati filtri o restrizioni aggiuntivi. Ti consigliamo di considerare le 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, oppure una 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 a seconda delle autorizzazioni di Looker che sono state assegnate a loro. 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 hanno scadenza e non possono essere revocati. Tuttavia, poiché il link funziona solo per chi ha accesso alla tua istanza di Looker e ai relativi dati, l'invio di un link non dovrebbe causare problemi di sicurezza.

Incorporamento Single Sign-On

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

L'incorporamento Single Sign-On fa un ulteriore passo avanti. L'incorporamento SSO non richiede agli utenti di eseguire l'autenticazione 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 utente vengono tutti 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 l'istanza di Looker è connessa, 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 senza il consenso dell'utente, ad esempio un pulsante che sembra eseguire altre operazioni. Il clickjacking richiede solitamente un URL statico. L'URL generato per un incorporamento SSO è segreto e solo l'utente che lo visualizza dovrebbe averlo. L'uso dell'incorporamento SSO non aumenta il rischio di clickjacking al sito web esterno.

Parametri di incorporamento SSO

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

  • user_attributes: vengono utilizzati per filtrare ulteriormente i dati. Le user_attributes sono molto efficaci, quindi valuta come potrebbero applicarsi alla tua istanza di Looker.
  • session_length: mantienilo al tempo minimo necessario.

Alcuni parametri, come user_attributes, possono essere nascosti nell'interfaccia utente ma verranno comunque codificati nell'URL di incorporamento. Questa operazione potrebbe essere indesiderata se, ad esempio, una password è un valore del parametro user_attribute di un utente. Come aggirare il problema puoi creare un gruppo temporaneo, impostare la password come attributo a livello di gruppo e trasmettere l'ID gruppo nell'URL di incorporamento. Puoi eliminare il gruppo dopo la sessione di incorporamento per evitare un eccesso di gruppi non attivi.

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

Gestione dell'accesso di incorporamento SSO

Quando crei l'URL dei tuoi contenuti incorporati:

  • Utilizza il livello di autorizzazioni più basso 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 incorporare l'accesso alla propria cartella Looker.

API Looker

Utilizzando l'API di Looker puoi 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, che sono associate a un utente specifico e hanno le stesse autorizzazioni dell'utente che le ha generate. Le chiavi API3 sono composte da un ID client e da una chiave segreta del client.

Gestione dell'accesso di incorporamento tramite API

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

  • La creazione di account di servizio dedicati consente di accedere all'API di pubblicità programmatica con l'insieme minimo di privilegi necessari.
  • Protezione dell'ID client e del client secret che compongono la chiave API3 (se esegui l'autenticazione con un SDK).

Tutti gli attributi utente impostati per gli utenti di incorporamento tramite l'API, ma non specificati nell'URL SSO, verranno reimpostati sui valori predefiniti al successivo accesso dell'URL SSO.

Eventi JavaScript incorporati

Dopo aver configurato l'iframe di incorporamento ( pubblicamente, privatamente, con SSO o tramite l'API) puoi interagire con l'iframe tramite JavaScript. Per verificare che le informazioni con 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 soltanto 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 Looker o la rete CDN, e sia collegato al trasporto HTTPS.

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

Deployment ospitati dal cliente

Ospitare la tua istanza di Looker può sembrare il modo non sicuro per bloccare l'accesso ai dati, in particolare i contenuti incorporati. Tuttavia, se i tuoi utenti devono accedere all'URL di incorporamento tramite Internet, l'hosting di Looker non presenta vantaggi particolari.

I deployment ospitati dal cliente possono essere più appropriati quando:

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