एम्बेड किए गए व्यूअर के लिए, लाइन के लेवल की सुरक्षा

उदाहरण के लिए, मान लें कि डेवलपर X के पास अपने क्लाइंट के लिए एक वेब ऐप्लिकेशन है. क्लाइंट, अपने क्रेडेंशियल का इस्तेमाल करके ऐप्लिकेशन में लॉग इन करते हैं. साथ ही, अलग-अलग स्टोर के लिए बिक्री का डेटा देख सकते हैं. हर क्लाइंट के पास, स्टोर की अलग-अलग सूची का ऐक्सेस होता है. डेवलपर को अपने ऐप्लिकेशन में Data Studio डैशबोर्ड एम्बेड करना है, ताकि जब कोई क्लाइंट लॉग इन करे, तो उसे सिर्फ़ उन स्टोर का बिक्री डेटा दिखे जिनका उसके पास ऐक्सेस है. इस प्रोसेस के काम करने के लिए, क्लाइंट को अपने Google खाते में लॉग इन नहीं करना चाहिए.

सुझाए गए समाधान के लिए, डेवलपर को एक कम्यूनिटी कनेक्टर बनाना होगा. साथ ही, एम्बेड किए गए यूआरएल के ज़रिए टोकन पास करना होगा. इसके बाद, टोकन के आधार पर डेटा को फ़िल्टर करना होगा.

ज़रूरी शर्तें

  • डैशबोर्ड देखने वाले लोग, तीसरे पक्ष के ऐप्लिकेशन में लॉग इन करेंगे.
  • ऐप्लिकेशन को, एम्बेड किए गए यूआरएल के ज़रिए Data Studio डैशबोर्ड को एक यूनीक टोकन पास करना चाहिए. इस टोकन का इस्तेमाल, फ़िल्टर की जानकारी ढूंढने के लिए किया जा सकता है. इसके अलावा, इसमें फ़िल्टर की जानकारी को एन्क्रिप्ट (सुरक्षित) किया जा सकता है.
  • कम्यूनिटी कनेक्टर को टोकन को फ़िल्टर वैल्यू में बदलने में सक्षम होना चाहिए.

सीमाएं

  • अगर आप G Suite के ग्राहक हैं और आपके एडमिन ने “लिंक वाले किसी भी व्यक्ति” के साथ Drive की फ़ाइलें शेयर करने की सुविधा बंद कर दी है, तो आपके पास अपने संगठन से बाहर के लोगों के साथ रिपोर्ट शेयर करने का विकल्प नहीं होगा.

समाधान

समस्या हल करने के लिए, यहां दिया गया तरीका अपनाएं.

वेब ऐप्लिकेशन में उपयोगकर्ता टोकन जनरेट करना

अपने वेब ऐप्लिकेशन में लॉग इन किए गए हर उपयोगकर्ता के लिए, एक यूनीक टोकन जनरेट करें.आपको इस टोकन को बाद के चरण में, एम्बेड किए गए डैशबोर्ड में पास करना होगा.

आपको काम का डेटा फ़िल्टर करने के लिए, टोकन का इस्तेमाल करना चाहिए. आपको ये विकल्प दिखेंगे:

  • एक ऐसा एपीआई एंडपॉइंट बनाएं जो किसी खास टोकन के लिए, फ़िल्टर किया गया डेटा या उपयोगकर्ता की जानकारी दिखाता हो.
  • टोकन में उपयोगकर्ता की जानकारी को एन्क्रिप्ट (सुरक्षित) करें, ताकि बाद में कनेक्टर में इसे डिक्रिप्ट किया जा सके.

नया कम्यूनिटी कनेक्टर बनाना

शुरू करने के लिए, कम्यूनिटी कनेक्टर कैसे काम करते हैं लेख पढ़ें और कम्यूनिटी कनेक्टर कोडलैब पूरा करें. कनेक्टर बनाने के लिए, कनेक्टर बनाने के लिए लोकल डेवलपमेंट टूलिंग का इस्तेमाल करें. इससे डेवलपमेंट की प्रोसेस तेज़ी से और आसानी से पूरी की जा सकती है.

कनेक्टर का कोड लिखना

  1. getConfig() को कम से कम एक कॉन्फ़िगरेशन आइटम दिखाना चाहिए. इसका इस्तेमाल, एम्बेड किए गए यूआरएल के पैरामीटर से टोकन कैप्चर करने के लिए किया जाएगा.

    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. Data Studio में डेटा सोर्स और रिपोर्ट बनाने के लिए, प्रोडक्शन डिप्लॉयमेंट लिंक का इस्तेमाल करें.
  4. token कॉन्फ़िगरेशन पैरामीटर के लिए, रिपोर्ट व्यूअर को पैरामीटर वैल्यू में बदलाव करने की अनुमति दें.
  5. चुने गए उपयोगकर्ताओं या “जिनके पास लिंक है उन सभी” के साथ डैशबोर्ड शेयर करें.
  6. रिपोर्ट के लिए, एम्बेड करने की सुविधा चालू करें.

डैशबोर्ड को अपने प्लैटफ़ॉर्म में जोड़ना

  1. जानें कि रिपोर्ट यूआरएल पैरामीटर कैसे काम करते हैं.
  2. यूआरएल पैरामीटर का इस्तेमाल करके, डाइनैमिक तरीके से जनरेट हुई टोकन वैल्यू को एम्बेड की गई 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

सुझाव

  • आपको कम समय के लिए मान्य टोकन बनाना चाहिए.
  • पक्का करें कि डैशबोर्ड से, अमान्य टोकन से देखी गई कोई भी जानकारी लीक न हो.