אבטחה ברמת השורה לצופים מוטמעים

לדוגמה, נניח שלמפתח X יש אפליקציית אינטרנט עבור הלקוחות שלו. הלקוחות מתחברים לאפליקציה באמצעות פרטי הכניסה שלהם ויכולים לצפות בנתוני המכירות של חנויות שונות. לכל לקוח יש גישה לרשימה שונה של חנויות. המפתח מעוניין להטמיע מרכז בקרה של Looker Studio באפליקציה שלו, כך שכאשר לקוח מתחבר, הוא יראה רק את נתוני המכירות של החנויות שיש לו גישה אליהן. הלקוחות לא צריכים להיכנס לחשבון Google שלהם כדי שהתהליך הזה יפעל.

במסגרת הפתרון המוצע, המפתח יצטרך ליצור מחבר קהילה, להעביר אסימון דרך כתובת ה-URL להטמעה ולאחר מכן לסנן את הנתונים לפי האסימון.

דרישות

  • צופים במרכז השליטה יתחברו לאפליקציית הצד השלישי.
  • האפליקציה צריכה להעביר אסימון ייחודי למרכז השליטה של Looker Studio דרך כתובת ה-URL להטמעה. האסימון יכול לשמש לחיפוש פרטי מסנן או להצפין את פרטי המסנן.
  • צריך לוודא שמחבר הקהילה יכול להמיר את האסימון לערכי הסינון.

מגבלות

  • אם אתם לקוחות של G Suite והאדמין שלכם לא מאפשר לשתף קובצי Drive עם 'כל מי שיש לו קישור', לא תוכלו לשתף את הדוח עם משתמשים מחוץ לארגון.

פתרון

כדי להטמיע את הפתרון, מבצעים את כל השלבים הבאים.

יצירת אסימון משתמש באפליקציית אינטרנט

צריך ליצור אסימון ייחודי לכל משתמש מחובר באפליקציית האינטרנט שלך.נעביר אותו למרכז השליטה המוטמע בשלב מאוחר יותר.

עליכם להשתמש באסימון כדי לסנן נתונים רלוונטיים. האפשרויות כוללות:

  • יוצרים נקודת קצה ל-API שמחזירה נתונים מסוננים או את פרטי המשתמש של אסימון ספציפי.
  • להצפין את פרטי המשתמש באסימון כדי שניתן יהיה לפענח אותם מאוחר יותר במחבר.

יצירת מחבר קהילה חדש

כדי להתחיל, קראו את המאמר איך פועלים מחברי קהילה והשלימו את ה-Codelab של מחבר הקהילה. להשתמש בכלי הפיתוח המקומיים ליצירת מחברים לתהליך פיתוח מהיר וקל יותר.

כתיבת קוד המחבר

  1. הפקודה getConfig() צריכה להחזיר לפחות פריט config אחד. הוא ישמש לתיעוד אסימון מהפרמטרים של כתובת ה-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(), האסימון מועבר לנקודת קצה של API ל-REST כדי לקבל רשימה של מזהי חנויות. לאחר מכן, מזהי החנויות האלה משמשים ליצירה של שאילתת ה-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. לפרמטר config 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

המלצות

  • עליך ליצור אסימון טווח קצר.
  • ודאו שמרכז הבקרה לא מדליף מידע שנצפה באמצעות אסימון לא חוקי.