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

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

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

الزامات

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

محدودیت ها

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

راه حل

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

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

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

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

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

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

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

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

  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 ارسال می‌شود تا لیستی از شناسه‌های فروشگاه دریافت شود. سپس از این شناسه های فروشگاه برای ساخت پرس و جوی 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. از پیوند استقرار Production برای ایجاد منبع داده و گزارش در Looker Studio استفاده کنید.
  4. برای پارامتر پیکربندی token ، به بازدیدکنندگان گزارش اجازه دهید مقادیر پارامتر را تغییر دهند .
  5. داشبورد را با کاربران منتخب یا با «هر کسی که پیوند دارد» به اشتراک بگذارید .
  6. جاسازی را برای گزارش فعال کنید .

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

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

توصیه ها

  • شما باید یک نشانه کوتاه مدت ایجاد کنید.
  • اطمینان حاصل کنید که داشبورد هیچ اطلاعاتی را با یک نشانه نامعتبر درز نمی کند.