Zabezpieczenia na poziomie wiersza w przypadku użytkowników umieszczonych na stronie

Załóżmy na przykład, że deweloper X ma aplikację internetową dla swoich klientów. Klienci logują się w aplikacji za pomocą własnych danych uwierzytelniających i mogą przeglądać dane dotyczące sprzedaży dla różnych sklepów. Każdy klient ma dostęp do innej listy sklepów. chce umieścić w swojej aplikacji panel Looker Studio, Po zalogowaniu się klient widzi tylko dane o sprzedaży w tych sklepach. do których mają dostęp. Klient nie powinien być zmuszony logować się na konto Google aby zapewnić jego prawidłowe działanie.

W ramach proponowanego rozwiązania deweloper musi utworzyć społecznościowe oprogramowanie sprzęgające, a następnie filtrować dane na podstawie tokena.

Wymagania

  • Osoby przeglądające panel będą logować się w aplikacji innej firmy.
  • Aplikacja powinna przekazywać unikalny token do panelu Looker Studio za pomocą adresu URL do umieszczenia. Token można wykorzystać do wyszukiwania informacji o filtrze lub zaszyfrowane informacje o filtrze.
  • Społecznościowe oprogramowanie sprzęgające powinno mieć możliwość przekształcenia tokena w filtr .

Ograniczenia

  • Jeśli jesteś klientem G Suite, a Twój administrator wyłączył udostępnianie plików na Dysku na „Każda osoba mająca link”, nie będzie można udostępniać tworzyć raporty użytkownikom spoza organizacji.

Rozwiązanie

Aby wdrożyć rozwiązanie, wykonaj wszystkie poniższe czynności.

Generowanie tokena użytkownika w aplikacji internetowej

Wygeneruj unikalny token dla każdego zalogowanego użytkownika w swojej aplikacji internetowej. przekazać ten token do umieszczonego panelu w późniejszym kroku.

Należy go użyć do filtrowania odpowiednich danych. Dostępne opcje:

  • utworzyć punkt końcowy interfejsu API, który zwraca przefiltrowane dane lub informacje o użytkowniku. dla konkretnego tokena.
  • zaszyfrować informacje o użytkowniku w tokenie, aby można je było później odszyfrować; w oprogramowaniu sprzęgającym.

Utwórz nowe społecznościowe oprogramowanie sprzęgające

Zapoznaj się z artykułem Jak działa społecznościowe oprogramowanie sprzęgające i wykonaj Aby rozpocząć, zapoznaj się z ćwiczeniami z programowania dla społeczności oprogramowania sprzęgającego. Użyj lokalne narzędzia programistyczne do tworzenia oprogramowania sprzęgającego, które przyspiesza i ułatwia tworzenie oprogramowania; jego rozwoju.

Pisanie kodu oprogramowania sprzęgającego

  1. Funkcja getConfig() powinna zwrócić co najmniej 1 element konfiguracji. Będzie ono używane do: przechwytywać token z parametrów adresu URL do umieszczenia.

    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() będzie mieć dostęp do tokena za pomocą request.configParams obiekt. Użyj tokena do pobrania przefiltrowanych danych lub filtrować już pobrane dane.
    W tym przykładzie token to request.configParams.token W getData() token jest przekazywany do REST punktu końcowego interfejsu API, aby uzyskać listę identyfikatorów sklepu. Te identyfikatory sklepu są następnie używane. do utworzenia zapytania SQL pobierającego dane sprzedaży.

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

Tworzenie panelu

  1. Dowiedz się, jak działają wdrożenia i wersje oprogramowania sprzęgającego.
  2. Utwórz wdrożenie produkcyjne oprogramowania sprzęgającego.
  3. Link do wdrożenia produkcyjnego pozwala utworzyć źródło danych i raport w Looker Studio
  4. W przypadku parametru konfiguracji token: Zezwalaj osobom przeglądającym raport na modyfikowanie wartości parametrów.
  5. Udostępnij panel wybranym użytkownikom lub wszystkim osobom: link”.
  6. Włącz umieszczanie raportu.

Umieszczanie panelu na platformie

  1. Dowiedz się, jak działają parametry adresu URL raportu.
  2. Przekaż dynamicznie generowaną wartość tokena za pomocą parametrów adresu URL do funkcji i osadzony raport Looker Studio.
    Twój URL do umieszczenia będzie wyglądać mniej więcej tak:
    `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

Rekomendacje

  • Należy utworzyć token krótkotrwały.
  • Sprawdź, czy w panelu nie wyciekły żadne informacje z wyświetlanymi za pomocą atrybutu nieprawidłowy token.