Sicurezza a livello di riga per i visualizzatori incorporati

Ad esempio, supponiamo che lo sviluppatore X abbia un'applicazione web per i suoi client. I clienti accedono all'app utilizzando le proprie credenziali e possono visualizzare i dati di vendita per diversi negozi. Ogni cliente ha accesso a un elenco diverso di negozi. Lo sviluppatore vorrebbe incorporare una dashboard di Looker Studio nell'applicazione in modo che, quando un client esegue l'accesso, visualizzi solo i dati delle vendite per i negozi a cui ha accesso. I clienti non dovrebbero dover accedere al proprio Account Google affinché questo processo funzioni.

La soluzione proposta richiede allo sviluppatore di creare un connettore della community, di trasmettere un token tramite l'URL di incorporamento e di filtrare i dati in base a tale token.

Requisiti

  • I visualizzatori della dashboard accederanno all'applicazione di terze parti.
  • L'applicazione deve passare un token univoco alla dashboard di Looker Studio tramite un URL incorporato. Il token può essere utilizzato per cercare le informazioni del filtro o per criptare le informazioni del filtro.
  • Il connettore della community dovrebbe essere in grado di convertire il token nei valori del filtro.

Limitazioni

  • Se sei un cliente G Suite e l'amministratore ha disattivato la condivisione dei file di Drive con "Chiunque abbia un link", non potrai condividere il report con utenti esterni all'organizzazione.

Soluzione

Completa tutti i passaggi seguenti per implementare la soluzione.

Genera token utente nell'app web

Genera un token univoco per ogni utente che ha eseguito l'accesso alla tua applicazione web.Trasferirai questo token alla dashboard incorporata in un passaggio successivo.

Dovresti utilizzare il token per filtrare i dati pertinenti. Le opzioni disponibili sono le seguenti:

  • Crea un endpoint API che restituisca dati filtrati o informazioni sugli utenti per un token specifico.
  • Cripta le informazioni utente nel token in modo che possano essere decriptate in un secondo momento nel connettore.

Creare un nuovo connettore della community

Consulta l'articolo Come funzionano i connettori della community e completa il codelab sui connettori della community per iniziare. Utilizza gli strumenti di sviluppo locale per la creazione di connettori per un processo di sviluppo più semplice e veloce.

Scrivi il codice del connettore

  1. getConfig() deve restituire almeno un elemento di configurazione. Verrà utilizzato per acquisire un token dai parametri dell'URL incorporato.

    function getConfig(request) {
      var cc = DataStudioApp.createCommunityConnector();
      var config = cc.getConfig();
    
      config
          .newTextInput()
          .setId('token')
          .setName('Enter user token');
    
      // TODO: Add additional config values if applicable for your connector
    
      config.setDateRangeRequired(false);
      config.setIsSteppedConfig(false);
    
      return config.build();
    }
    
  2. getData() avrà accesso al token tramite l'oggetto request.configParams. Utilizza il token per recuperare i dati filtrati o per filtrare i dati recuperati esistenti.
    Seguendo l'esempio precedente, il token sarà request.configParams.token. In getData(), il token viene passato a un endpoint dell'API REST per ottenere un elenco di ID archivio. Questi ID archivio vengono quindi utilizzati per costruire la query SQL al fine di recuperare i dati sulle vendite.

    var STORE_ID_API = 'https://www.example.com/api/storeid';
    var QUERY_STRING_PREFIX = "SELECT StoreName, Sales from stores"
    
    function getData(request) {
      var token = request.configParams.token;
    
      var storeIds = getStoreIdList(token);
      var queryString = constructQueryString(storeIds);
      var fetchedData = fetchData(queryString);
    
      // rest of getData() implementation
    }
    
    function getStoreIdList(token) {
      var url = STORE_ID_API;
      var response = UrlFetchApp.fetch(url);
      var parsedResponse = JSON.parse(response);
      return parsedResponse.storeIds;
    }
    
    function constructQueryString(storeIds) {
      var storeIdString = storeIds.join(',');
      var queryString = QUERY_STRING_PREFIX
                        + ' WHERE storeId in ('
                        + storeIdString
                        + ')';
      return queryString;
    }
    

Crea la dashboard

  1. Scopri come funzionano deployment e versioni per i connettori.
  2. Crea un deployment di produzione per il connettore.
  3. Utilizza il link Deployment in produzione per creare un'origine dati e un report in Looker Studio.
  4. Per il parametro di configurazione token, Consenti ai visualizzatori dei report di modificare i valori parametro.
  5. Condividi la dashboard con gli utenti selezionati o con "Chiunque abbia il link".
  6. Attiva l'incorporamento per il report.

Incorpora la dashboard nella tua piattaforma

  1. Scopri come funzionano i parametri URL dei report.
  2. Passa il valore del token generato dinamicamente utilizzando i parametri URL al report incorporato di Looker Studio.
    Il tuo URL incorporato sarà simile a questo:
    `https://lookerstudio.google.com/embed/reporting/REPORT_ID/page/PAGE_ID?config=%7B%22ds0%22%3A%7B%22token%22%3A%22TOKEN_VALUE%22%7D%7D

Suggerimenti

  • Dovresti creare un token di breve durata.
  • Assicurati che la dashboard non trasmetta informazioni essere visualizzate con un token non valido.