Keamanan tingkat baris untuk pelihat sematan

Misalnya, anggaplah developer X memiliki aplikasi web untuk kliennya. Klien login ke aplikasi menggunakan kredensial mereka sendiri dan dapat melihat data penjualan untuk toko yang berbeda. Setiap klien memiliki akses ke daftar toko yang berbeda. Tujuan developer ingin menyematkan dasbor Looker Studio dalam aplikasi mereka sehingga bahwa ketika klien masuk, klien itu hanya melihat data penjualan untuk toko yang dapat mereka akses. Klien tidak perlu login ke Akun Google mereka agar proses ini berjalan.

Solusi yang diusulkan mengharuskan developer untuk membuat Konektor Komunitas, meneruskan token melalui URL sematan, lalu memfilter data berdasarkan token tersebut.

Persyaratan

  • Orang yang melihat dasbor akan masuk ke aplikasi pihak ketiga.
  • Aplikasi harus meneruskan token unik ke dasbor Looker Studio melalui URL sematan. Token dapat digunakan untuk mencari informasi filter atau memiliki informasi filter yang terenkripsi di dalamnya.
  • Konektor Komunitas harus dapat mengonversi token ke filter masing-masing.

Batasan

  • Jika Anda pelanggan G Suite dan administrator Anda telah menonaktifkan fitur berbagi Drive file ke "Anyone with a Link", Anda tidak akan dapat membagikan dengan pengguna di luar organisasi Anda.

Solusi

Selesaikan semua langkah berikut untuk menerapkan solusi.

Buat token pengguna di aplikasi web

Buat token unik untuk setiap pengguna yang masuk di aplikasi web.Anda akan meneruskan token ini ke dasbor tersemat di langkah berikutnya.

Sebaiknya Anda menggunakan token untuk memfilter data yang relevan. Opsi mencakup:

  • Membuat endpoint API yang menampilkan data yang difilter atau informasi pengguna untuk token tertentu.
  • Mengenkripsi informasi pengguna dalam token agar dapat didekripsi nanti di konektor.

Membuat Konektor Komunitas baru

Tinjau Cara Kerja Konektor Komunitas dan selesaikan Codelab Konektor Komunitas untuk memulai. Gunakan Alat pengembangan lokal untuk membuat konektor agar lebih cepat dan mudah proses pengembangan Anda.

Menulis kode konektor

  1. getConfig() harus menampilkan setidaknya satu item konfigurasi. Ini akan digunakan untuk mengambil token dari parameter URL sematan.

    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() akan memiliki akses ke token melalui Objek request.configParams. Gunakan token untuk mengambil data yang difilter atau memfilter data yang sudah diambil.
    Dengan mengikuti contoh di atas, token tersebut akan request.configParams.token. Di getData(), token diteruskan ke REST Endpoint API untuk mendapatkan daftar ID Toko. ID Toko ini kemudian digunakan untuk membangun kueri SQL guna mengambil data penjualan.

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

Membuat dasbor

  1. Pahami cara kerja deployment dan versi untuk konektor.
  2. Buat deployment produksi untuk konektor.
  3. Gunakan link Deployment produksi untuk membuat sumber data dan laporan di Looker Studio.
  4. Untuk parameter konfigurasi token, Izinkan pelihat laporan mengubah nilai parameter.
  5. Bagikan dasbor kepada pengguna yang dipilih atau dengan "Siapa saja yang memiliki {i>link<i}”.
  6. Aktifkan penyematan untuk laporan.

Sematkan dasbor di platform Anda

  1. Memahami cara kerja Parameter URL laporan.
  2. Teruskan nilai token yang dihasilkan secara dinamis menggunakan parameter URL ke laporan Looker Studio yang disematkan.
    URL sematan Anda akan tampak seperti ini:
    `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

Rekomendasi

  • Anda harus membuat token jangka pendek.
  • Pastikan dasbor tidak membocorkan informasi apa pun dengan dilihat dengan token tidak valid.