Yerleştirilmiş görüntüleyenler için satır düzeyinde güvenlik

Örneğin, X geliştiricisinin müşterileri için bir web uygulaması olduğunu varsayalım. Müşteriler kendi kimlik bilgilerini kullanarak uygulamaya giriş yapar ve farklı mağazaların satış verilerini görüntüleyebilir. Her müşterinin farklı bir mağaza listesine erişimi vardır. Geliştirici, uygulamasına bir Looker Studio kontrol paneli yerleştirmek istiyor. Böylece, istemci giriş yaptığında yalnızca erişebildiği mağazaların satış verilerini görüyor. Bu işlemin işe yaraması için müşterilerin Google hesaplarına giriş yapmalarına gerek yoktur.

Önerilen çözümde geliştiricinin bir Topluluk Bağlayıcısı oluşturması, yerleştirilmiş URL üzerinden bir jeton iletmesi ve ardından jetona göre verileri filtrelemesi gerekir.

Koşullar

  • Kontrol panelini görüntüleyenler, üçüncü taraf uygulamaya giriş yapar.
  • Uygulama, yerleştirme URL'si üzerinden Looker Studio kontrol paneline benzersiz bir jeton iletmelidir. Bu jeton, filtre bilgilerini aramak veya filtre bilgilerini şifrelemek için kullanılabilir.
  • Topluluk Bağlayıcısı, jetonu filtre değerlerine dönüştürebilmelidir.

Sınırlamalar

  • G Suite müşterisiyseniz ve yöneticiniz Drive dosyalarının "Bağlantıya sahip olan herkes" ile paylaşılmasını devre dışı bıraktıysa raporu kuruluşunuzun dışından kullanıcılarla paylaşamazsınız.

Çözüm

Çözümü uygulamak için aşağıdaki adımların tümünü tamamlayın.

Web uygulamasında kullanıcı jetonu oluşturun

Web uygulamanızda oturum açmış her kullanıcı için benzersiz bir jeton oluşturun.Bu jetonu sonraki bir adımda yerleştirilmiş kontrol paneline geçireceksiniz.

İlgili verileri filtrelemek için jetonu kullanmanız gerekir. Seçenekler aşağıdakileri içerir:

  • Filtrelenmiş verileri veya belirli bir jeton için kullanıcı bilgilerini döndüren bir API uç noktası oluşturun.
  • Bağlayıcıda daha sonra şifrelerinin çözülebilmesi için jetondaki kullanıcı bilgilerini şifreleyin.

Yeni bir Topluluk Bağlayıcısı oluşturun

Başlamak için Topluluk Bağlayıcıların İşleyiş Şekli konusunu inceleyin ve Community Connector Codelab'i tamamlayın. Daha hızlı ve kolay bir geliştirme süreci için Bağlayıcı oluşturmaya yönelik yerel geliştirme araçlarını kullanın.

Bağlayıcı kodunu yaz

  1. getConfig() en az bir yapılandırma öğesi döndürmelidir. Bu, yerleştirme URL'sinin parametrelerinden jeton yakalamak için kullanılır.

    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(), jetona request.configParams nesnesi aracılığıyla erişebilir. Jetonu, filtrelenmiş verileri getirmek veya getirilen mevcut verileri filtrelemek için kullanın.
    Yukarıdaki örneğe göre jeton request.configParams.token olur. getData() ürününde jeton, Mağaza Kimlikleri listesini almak için bir REST API uç noktasına iletilir. Daha sonra bu Mağaza Kimlikleri, satış verilerini getirmek üzere SQL sorgusunu oluşturmak için kullanılır.

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

Kontrol panelini oluşturma

  1. Bağlayıcılar için dağıtımların ve sürümlerin işleyiş şeklini öğrenin.
  2. Bağlayıcı için bir üretim dağıtımı oluşturun.
  3. Looker Studio'da veri kaynağı ve rapor oluşturmak için Üretim dağıtımı bağlantısını kullanın.
  4. token yapılandırma parametresi için Rapor görüntüleyicilerin parametre değerlerini değiştirmesine izin ver bölümüne bakın.
  5. Seçili kullanıcılarla veya "Bağlantıya sahip olan herkes" ile kontrol panelini paylaşın.
  6. Rapor için yerleştirmeyi etkinleştirin.

Kontrol panelini platformunuza yerleştirme

  1. Rapor URL'si parametrelerinin işleyişini öğrenin.
  2. URL parametrelerini kullanarak dinamik olarak oluşturulan jeton değerini, yerleştirilmiş Looker Studio raporuna iletin.
    Yerleştirme URL'niz şuna benzer:
    `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

Öneriler

  • Kısa ömürlü bir jeton oluşturmanız gerekir.
  • Kontrol panelinin geçersiz jetonla görüntülenen bilgileri sızdırmadığından emin olun.