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 sulle vendite per diversi negozi. Ogni cliente ha accesso a un elenco diverso di negozi. La uno sviluppatore vorrebbe incorporare una dashboard di Looker Studio nella propria applicazione che, quando un cliente esegue l'accesso, vede solo i dati delle vendite dei negozi a cui hanno accesso. I clienti non dovrebbero essere costretti ad accedere al proprio Account Google affinché questa procedura funzioni.

Per la soluzione proposta sarà necessario che lo sviluppatore crei un connettore della community, Trasmetti un token tramite l'URL incorporato e poi filtra i dati in base al 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 l'URL incorporato. Il token può essere utilizzato per cercare informazioni relative al filtro o far crittografare le informazioni del filtro.
  • Il connettore della community deve essere in grado di convertire il token nel filtro e i relativi valori.

Limitazioni

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

Soluzione

Completa tutti i seguenti passaggi 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. passare questo token alla dashboard incorporata in un passaggio successivo.

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

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

Crea un nuovo connettore della community

Consulta Come funzionano i connettori della community e completa il Codelab sui connettori della community per iniziare. Utilizza la Strumenti di sviluppo locale per la creazione di connettori in modo più rapido e semplice il processo di sviluppo.

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 request.configParams oggetto. Utilizza il token per recuperare i dati filtrati filtrare i dati recuperati esistenti.
    Seguendo l'esempio precedente, il token sarebbe request.configParams.token. In getData(), il token viene passato a un REST Endpoint API per ottenere un elenco di ID negozio. Questi ID negozio vengono quindi utilizzati per creare 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 i deployment e le versioni per i connettori.
  2. Crea un deployment di produzione per il connettore.
  3. Utilizza il link Deployment di produzione per creare un'origine dati e un report in e Looker Studio.
  4. Per il parametro di configurazione token, Consentire ai visualizzatori dei report di modificare i valori dei parametri.
  5. Condividi la dashboard con utenti selezionati o con "Chiunque abbia ".
  6. Attiva l'incorporamento del report.

Incorpora la dashboard nella tua piattaforma

  1. Scopri come funzionano i parametri URL del report.
  2. Trasmetti il valore del token generato dinamicamente utilizzando i parametri URL alla sezione nel report di Looker Studio incorporato.
    L'URL di incorporamento sarà simile al seguente:
    `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

Consigli

  • Dovresti creare un token di breve durata.
  • Assicurati che nella dashboard non trapelano informazioni quando vengono visualizzate con un token non valido.