การรักษาความปลอดภัยระดับแถวสําหรับผู้ดูแบบฝัง

ตัวอย่างเช่น สมมติว่านักพัฒนาซอฟต์แวร์ X มีเว็บแอปพลิเคชันสำหรับลูกค้าของตน ลูกค้าเข้าสู่ระบบแอปโดยใช้ข้อมูลเข้าสู่ระบบของตนเองและดูข้อมูลยอดขายได้ สำหรับร้านค้าต่างๆ ลูกค้าแต่ละรายมีสิทธิ์เข้าถึงรายการร้านค้าที่แตกต่างกัน นักพัฒนาซอฟต์แวร์ต้องการฝังแดชบอร์ด Looker Studio ในแอปพลิเคชันของตนเพื่อ เมื่อลูกค้าเข้าสู่ระบบ ลูกค้าจะเห็นเฉพาะข้อมูลการขายของร้านค้าเท่านั้น ที่นักเรียนเหล่านั้นเข้าถึงได้ ลูกค้าไม่ควรต้องเข้าสู่ระบบบัญชี Google เพื่อให้กระบวนการนี้ทำงาน

โซลูชันที่นำเสนอจะต้องให้นักพัฒนาซอฟต์แวร์สร้าง Community Connector ผ่านโทเค็นผ่าน URL ที่ฝัง จากนั้นจึงกรองข้อมูลตามโทเค็น

ข้อกำหนด

  • ผู้ดูหน้าแดชบอร์ดจะเข้าสู่ระบบแอปพลิเคชันของบุคคลที่สาม
  • แอปพลิเคชันควรส่งโทเค็นที่ไม่ซ้ำกันไปยังแดชบอร์ด Looker Studio ผ่าน URL แบบฝัง โทเค็นนี้สามารถใช้เพื่อค้นหาข้อมูลตัวกรอง หรือมีการเข้ารหัสข้อมูลตัวกรองไว้ภายใน
  • Community Connector ควรแปลงโทเค็นเป็นตัวกรองได้

ข้อจำกัด

  • หากคุณเป็นลูกค้า G Suite และผู้ดูแลระบบปิดใช้การแชร์ ไฟล์ในไดรฟ์ไปยัง "ทุกคนที่มีลิงก์" คุณจะไม่สามารถแชร์ กับผู้ใช้ภายนอกองค์กรของคุณ

โซลูชัน

ทำตามขั้นตอนต่อไปนี้ทั้งหมดเพื่อนำโซลูชันไปใช้

สร้างโทเค็นผู้ใช้ในเว็บแอป

สร้างโทเค็นที่ไม่ซ้ำกันสำหรับผู้ใช้แต่ละคนที่เข้าสู่ระบบในเว็บแอปพลิเคชัน ส่งโทเค็นนี้ไปยังแดชบอร์ดที่ฝังในขั้นตอนถัดไป

คุณควรใช้โทเค็นเพื่อกรองข้อมูลที่เกี่ยวข้อง โดยมีตัวเลือกดังนี้

  • สร้างปลายทาง API ซึ่งแสดงผลข้อมูลที่กรองแล้วหรือข้อมูลผู้ใช้ สำหรับโทเค็นที่ระบุ
  • เข้ารหัสข้อมูลผู้ใช้ในโทเค็นเพื่อให้ถอดรหัสได้ในภายหลัง ในเครื่องมือเชื่อมต่อ

สร้างปลั๊กอินจากชุมชนสำหรับใช้ลิงก์ข้อมูลใหม่

อ่านวิธีการทำงานของปลั๊กอินจากชุมชนสำหรับใช้ลิงก์ข้อมูลและดำเนินการตาม Codelab ของปลั๊กอินจากชุมชนสำหรับใช้ลิงก์ข้อมูลเพื่อเริ่มต้นใช้งาน ใช้เมนู เครื่องมือการพัฒนาภายในสำหรับการสร้างเครื่องมือเชื่อมต่อเพื่อการใช้งานที่รวดเร็วและง่ายขึ้น ขั้นตอนการพัฒนาแอป

เขียนโค้ดเครื่องมือเชื่อมต่อ

  1. getConfig() ควรแสดงผลรายการการกำหนดค่าอย่างน้อย 1 รายการ ช่องนี้จะใช้เพื่อ บันทึกโทเค็นจากพารามิเตอร์ของ 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

คำแนะนำ

  • คุณควรสร้างโทเค็นที่มีอายุสั้น
  • ตรวจสอบว่าแดชบอร์ดไม่ได้ทำให้ข้อมูลที่มีการดูด้วย โทเค็นไม่ถูกต้อง