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

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

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

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

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

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

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

सुझाव

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