امنیت در سطح ردیف برای بینندگان جاسازی شده

برای مثال، فرض کنید توسعه‌دهنده X یک برنامه وب برای مشتریان خود دارد. مشتریان با استفاده از اعتبارنامه‌های خود به برنامه وارد می‌شوند و می‌توانند داده‌های فروش فروشگاه‌های مختلف را مشاهده کنند. هر مشتری به لیست متفاوتی از فروشگاه‌ها دسترسی دارد. توسعه‌دهنده می‌خواهد یک داشبورد Data Studio را در برنامه خود تعبیه کند تا وقتی یک مشتری وارد سیستم می‌شود، فقط داده‌های فروش فروشگاه‌هایی را که به آنها دسترسی دارد، ببیند. برای اینکه این فرآیند کار کند، مشتریان نباید مجبور باشند وارد حساب گوگل خود شوند.

راه حل پیشنهادی مستلزم آن است که توسعه‌دهنده یک رابط انجمن ایجاد کند، یک توکن را از طریق URL جاسازی شده ارسال کند و سپس داده‌ها را بر اساس توکن فیلتر کند.

الزامات

  • بینندگان داشبورد به برنامه شخص ثالث وارد می‌شوند.
  • برنامه باید یک توکن منحصر به فرد را از طریق URL جاسازی شده به داشبورد Data Studio ارسال کند. این توکن می‌تواند برای جستجوی اطلاعات فیلتر استفاده شود یا اطلاعات فیلتر در آن رمزگذاری شود.
  • رابط جامعه باید بتواند توکن را به مقادیر فیلتر تبدیل کند.

محدودیت‌ها

  • اگر مشتری G Suite هستید و سرپرست شما اشتراک‌گذاری فایل‌های Drive را با «هرکسی که لینک دارد» غیرفعال کرده است، نمی‌توانید گزارش را با کاربران خارج از سازمان خود به اشتراک بگذارید.

راه حل

برای اجرای راه حل، تمام مراحل زیر را انجام دهید.

تولید توکن کاربر در برنامه وب

برای هر کاربر وارد شده در برنامه وب خود، یک توکن منحصر به فرد ایجاد کنید. این توکن را در مرحله بعد به داشبورد تعبیه شده ارسال خواهید کرد.

شما باید از توکن برای فیلتر کردن داده‌های مرتبط استفاده کنید. گزینه‌ها عبارتند از:

  • یک نقطه پایانی API ایجاد کنید که داده‌های فیلتر شده یا اطلاعات کاربر را برای یک توکن خاص برگرداند.
  • اطلاعات کاربر را در توکن رمزگذاری کنید تا بعداً در کانکتور رمزگشایی شود.

یک رابط انجمن جدید ایجاد کنید

نحوه کار رابط‌های اجتماعی را بررسی کنید و برای شروع، Codelab رابط اجتماعی را تکمیل کنید. از ابزار توسعه محلی برای ایجاد رابط‌ها استفاده کنید تا فرآیند توسعه سریع‌تر و آسان‌تر شود.

کد کانکتور را بنویسید

  1. getConfig() باید حداقل یک آیتم پیکربندی را برگرداند. این برای گرفتن یک توکن از پارامترهای URL جاسازی شده استفاده می‌شود.

    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() از طریق شیء request.configParams به توکن دسترسی خواهد داشت. از توکن برای واکشی داده‌های فیلتر شده یا فیلتر کردن داده‌های واکشی شده‌ی موجود استفاده کنید.
    طبق مثال بالا، توکن request.configParams.token خواهد بود. در getData() ، توکن به یک نقطه پایانی REST API ارسال می‌شود تا لیستی از شناسه‌های فروشگاه (Store Ids ) دریافت شود. سپس از این شناسه‌های فروشگاه برای ساخت کوئری SQL جهت دریافت داده‌های فروش استفاده می‌شود.

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

داشبورد را ایجاد کنید

  1. درک کنید که استقرارها و نسخه‌ها برای کانکتورها چگونه کار می‌کنند.
  2. یک استقرار عملیاتی برای کانکتور ایجاد کنید .
  3. برای ایجاد یک منبع داده و یک گزارش در Data Studio از لینک استقرار تولید استفاده کنید.
  4. برای پارامتر پیکربندی token ، به بینندگان گزارش اجازه دهید مقادیر پارامتر را تغییر دهند .
  5. داشبورد را با کاربران انتخاب شده یا با «هر کسی که لینک دارد» به اشتراک بگذارید .
  6. جاسازی را برای گزارش فعال کنید .

داشبورد را در پلتفرم خود جاسازی کنید

  1. نحوه عملکرد پارامترهای گزارش URL را درک کنید.
  2. مقدار توکن تولید شده به صورت پویا را با استفاده از پارامترهای URL به گزارش تعبیه شده Data Studio ارسال کنید.
    آدرس اینترنتی جاسازی شما شبیه به این خواهد بود:
    `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

توصیه‌ها

  • شما باید یک توکن کوتاه‌مدت ایجاد کنید.
  • مطمئن شوید که داشبورد با توکن نامعتبر مشاهده شود و هیچ اطلاعاتی را فاش نکند.