أمان على مستوى الصف للمشاهدين المضمّنين

على سبيل المثال، لنفترض أن المطور س لديه تطبيق ويب لعملائه. ويسجّل العملاء الدخول إلى التطبيق باستخدام بيانات الاعتماد الخاصة بهم ويمكنهم عرض بيانات المبيعات للمتاجر المختلفة. يمكن لكل عميل الوصول إلى قائمة مختلفة من المتاجر. يريد مطوّر البرامج تضمين لوحة بيانات Looker Studio في تطبيقه بحيث عندما يسجّل العميل الدخول، لا يرى العميل سوى بيانات مبيعات المتاجر التي يمكنه الوصول إليها. يجب ألا يُطلب من العملاء تسجيل الدخول إلى حساباتهم على Google لكي تنجح هذه العملية.

وسيتطلب الحل المقترح من مطوّر البرامج إنشاء Community Connector، وتمرير رمز مميز عبر عنوان URL المضمَّن، ثم تصفية البيانات بناءً على الرمز المميز.

المتطلّبات

  • سيتم تسجيل دخول مشاهدي لوحة البيانات إلى التطبيق التابع لجهة خارجية.
  • يجب أن يمرر التطبيق رمزًا مميزًا إلى لوحة بيانات Looker Studio من خلال عنوان URL المضمَّن. يمكن استخدام الرمز المميز إما للبحث عن معلومات التصفية أو تشفير معلومات التصفية داخلها.
  • من المفترض أن يتمكن موصِّل المنتدى من تحويل الرمز المميّز إلى قيم عوامل التصفية.

القيود

  • إذا كنت أحد عملاء G Suite وأوقف المشرف إمكانية مشاركة ملفات Drive مع "أي شخص لديه رابط"، لن تتمكّن من مشاركة التقرير مع مستخدمين خارج مؤسستك.

الحلّ

أكمل جميع الخطوات التالية لتنفيذ الحل.

إنشاء رمز مميز للمستخدم في تطبيق الويب

يمكنك إنشاء رمز مميز فريد لكل مستخدم سجّل الدخول إلى تطبيق الويب الخاص بك.وسيتم تمرير هذا الرمز المميز إلى لوحة البيانات المضمّنة في خطوة لاحقة.

ويجب عليك استخدام الرمز المميز لفلترة البيانات ذات الصلة. تشمل الخيارات ما يلي:

  • أنشئ نقطة نهاية لواجهة برمجة التطبيقات تعرض البيانات المفلترة أو معلومات المستخدم لرمز مميّز محدّد.
  • تشفير معلومات المستخدم في الرمز المميز بحيث يمكن فك تشفيرها لاحقًا في الموصل.

إنشاء رابط جديد للمنتدى

راجِع آلية عمل "وصلات المنتدى" وأكمِل الدرس التطبيقي حول ترميز "وصلات المنتدى" للبدء. استخدِم أدوات التطوير المحلي لإنشاء موصِّلات لإجراء عملية تطوير أسرع وأسهل.

كتابة رمز الموصِّل

  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. استخدِم رابط نشر قناة الإصدار العلني لإنشاء مصدر بيانات وتقرير في Looker Studio.
  4. بالنسبة إلى معلَمة الإعداد token، يمكنك السماح لمشاهدي التقارير بتعديل قيم المَعلمات.
  5. يمكنك مشاركة لوحة البيانات مع مستخدمين محددين أو مع أي شخص لديه الرابط.
  6. تفعيل التضمين للتقرير.

تضمين لوحة البيانات في منصتك

  1. فهم آلية عمل إعداد تقارير عن معلَمات عناوين URL
  2. مرِّر قيمة الرمز المميز الذي يتم إنشاؤه ديناميكيًا باستخدام معلَمات عناوين URL إلى تقرير Looker Studio المضمَّن.
    سيبدو عنوان URL المضمَّن على النحو التالي:
    `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

اقتراحات

  • عليك إنشاء رمز مميّز قصير الأجل.
  • يُرجى التأكّد من أنّ لوحة البيانات لا تسرّب أي معلومات تم الاطّلاع عليها باستخدام رمز مميّز غير صالح.