Sicherheit auf Zeilenebene für eingebettete Viewer

Beispiel: Nehmen wir an, Entwickler X hat eine Webanwendung für seine Kunden. Kunden melden sich mit ihren eigenen Anmeldedaten in der App an und können Verkaufsdaten abrufen für verschiedene Geschäfte. Jeder Kunde hat Zugriff auf eine andere Liste von Geschäften. Die möchte ein Looker Studio-Dashboard in ihre Anwendung einbetten, Wenn sich ein Kunde anmeldet, werden nur die Verkaufsdaten für die Geschäfte angezeigt. auf die sie Zugriff haben. Kunden sollten sich nicht in ihrem Google-Konto anmelden müssen damit dieser Prozess funktioniert.

Der Entwickler muss einen Community-Connector erstellen, ein Token über die Einbettungs-URL übergeben und dann die Daten basierend auf dem Token filtern.

Voraussetzungen

  • Dashboard-Betrachter melden sich in der Drittanbieter-App an.
  • Die Anwendung sollte ein eindeutiges Token an das Looker Studio-Dashboard übergeben. über die Einbettungs-URL. Das Token kann entweder zum Nachschlagen von Filterinformationen verwendet werden. oder die Filterinformationen darin verschlüsseln.
  • Der Community-Connector sollte das Token in den Filter umwandeln können. Werte.

Beschränkungen

  • Wenn Sie G Suite-Kunde sind und Ihr Administrator die Freigabe deaktiviert hat Drive-Dateien auf die Option „Jeder, der über den Link verfügt“ verfügt, können Sie das mit Nutzern außerhalb Ihrer Organisation.

Lösung

Führen Sie alle folgenden Schritte aus, um die Lösung zu implementieren.

Nutzertoken in der Web-App generieren

Generieren Sie für jeden angemeldeten Nutzer in Ihrer Webanwendung ein eindeutiges Token. werden dieses Token in einem späteren Schritt an das eingebettete Dashboard übergeben.

Sie sollten das Token verwenden, um relevante Daten zu filtern. Zu den Optionen gehören:

  • Erstellen Sie einen API-Endpunkt, der gefilterte Daten oder die Nutzerinformationen zurückgibt für ein bestimmtes Token.
  • Die Nutzerinformationen im Token verschlüsseln, damit sie später entschlüsselt werden können im Connector.

Neuen Community-Connector erstellen

Lesen Sie den Artikel Funktionsweise von Community-Connectors und schließen Sie den Community-Connector-Codelab, um loszulegen. Verwenden Sie die Methode Lokale Entwicklungstools zum Erstellen von Connectors für eine schnellere und einfachere und Entwicklungsprozessen.

Connector-Code schreiben

  1. getConfig() sollte mindestens ein Konfigurationselement zurückgeben. Dies wird verwendet, um um ein Token aus den Parametern der Einbettungs-URL zu erfassen.

    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() hat über die request.configParams-Objekt. Rufen Sie mithilfe des Tokens gefilterte Daten ab oder vorhandene abgerufene Daten filtern.
    Im obigen Beispiel wäre das Token request.configParams.token. In getData() wird das Token an eine REST übergeben. API-Endpunkt, um eine Liste der Store-IDs abzurufen. Diese Shop-IDs werden dann um die SQL-Abfrage zum Abrufen von Verkaufsdaten zu erstellen.

    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;
    }
    

Dashboard erstellen

  1. Informationen zur Funktionsweise von Bereitstellungen und Versionen für Connectors
  2. Erstellen Sie eine Produktionsbereitstellung für den Connector.
  3. Erstellen Sie über den Link „Produktionsbereitstellung“ eine Datenquelle und einen Bericht in Looker Studio
  4. Beim Konfigurationsparameter token Betrachter von Berichten die Möglichkeit haben, Parameterwerte zu ändern
  5. Dashboard für ausgewählte Nutzer freigeben oder mit der Option „Jeder mit Link“.
  6. Aktivieren Sie die Einbettung für den Bericht.

Dashboard in Ihre Plattform einbetten

  1. Funktionsweise von Berichts-URL-Parametern
  2. Übergeben Sie den dynamisch generierten Tokenwert mithilfe von URL-Parametern an den Looker Studio-Bericht.
    Ihre Einbettungs-URL sieht in etwa so aus:
    `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

Empfehlungen

  • Sie sollten ein kurzlebiges Token erstellen.
  • Stellen Sie sicher, dass im Dashboard keine Informationen offengelegt werden, die mit einem Ungültiges Token.