Bảo mật cấp hàng cho người xem được nhúng

Ví dụ: giả sử nhà phát triển X có một ứng dụng web cho khách hàng của họ. Khách hàng đăng nhập vào ứng dụng bằng thông tin đăng nhập của riêng họ và có thể xem dữ liệu bán hàng cho các cửa hàng khác nhau. Mỗi khách hàng có quyền truy cập vào một danh sách cửa hàng khác nhau. Chiến lược phát hành đĩa đơn nhà phát triển muốn nhúng trang tổng quan Looker Studio vào ứng dụng của họ để khi đăng nhập, khách hàng chỉ thấy dữ liệu bán hàng của cửa hàng mà họ có quyền truy cập. Khách hàng không cần phải đăng nhập vào Tài khoản Google để quy trình này hoạt động.

Giải pháp được đề xuất sẽ cần nhà phát triển tạo Trình kết nối cộng đồng, truyền mã thông báo thông qua URL được nhúng, sau đó lọc dữ liệu dựa trên mã thông báo.

Yêu cầu

  • Người xem trang tổng quan sẽ đăng nhập vào ứng dụng bên thứ ba.
  • Ứng dụng phải truyền một mã thông báo duy nhất đến trang tổng quan Looker Studio thông qua URL nhúng. Mã thông báo có thể được dùng để tra cứu thông tin bộ lọc hoặc đã mã hoá thông tin bộ lọc.
  • Trình kết nối cộng đồng có thể chuyển đổi mã thông báo thành bộ lọc giá trị.

Các điểm hạn chế

  • Nếu bạn là khách hàng G Suite và quản trị viên của bạn đã tắt tính năng chia sẻ Drive cho “Bất kỳ ai có liên kết”, bạn sẽ không thể chia sẻ báo cáo với người dùng bên ngoài tổ chức của bạn.

Giải pháp

Hãy hoàn tất tất cả các bước sau để triển khai giải pháp này.

Tạo mã thông báo người dùng trong ứng dụng web

Tạo mã thông báo duy nhất cho mỗi người dùng đã đăng nhập trong ứng dụng web của bạn.Bạn sẽ chuyển mã thông báo này đến trang tổng quan được nhúng ở bước sau.

Bạn nên sử dụng mã thông báo này để lọc dữ liệu có liên quan. Các lựa chọn bao gồm:

  • Tạo điểm cuối API trả về dữ liệu đã lọc hoặc thông tin người dùng cho một mã thông báo cụ thể.
  • Mã hoá thông tin người dùng trong mã thông báo để có thể giải mã sau trong trình kết nối.

Tạo Trình kết nối cộng đồng mới

Xem Cách hoạt động của trình kết nối dành cho cộng đồng rồi hoàn thành Lớp học lập trình về Trình kết nối cộng đồng để bắt đầu. Sử dụng Công cụ phát triển cục bộ để tạo trình kết nối để có thể kết nối nhanh hơn và dễ dàng hơn quá trình phát triển ứng dụng.

Viết mã trình kết nối

  1. getConfig() cần trả về ít nhất một mục cấu hình. Thông tin này sẽ được dùng để thu thập mã thông báo từ các tham số của URL được nhúng.

    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() sẽ có quyền truy cập vào mã thông báo này thông qua Đối tượng request.configParams. Sử dụng mã thông báo này để tìm nạp dữ liệu đã lọc hoặc lọc dữ liệu đã tìm nạp hiện có.
    Theo ví dụ trên, mã thông báo sẽ là request.configParams.token Trong getData(), mã thông báo được chuyển đến REST Điểm cuối của API để lấy danh sách Mã cửa hàng. Sau đó, các Mã cửa hàng này sẽ được sử dụng để tạo truy vấn SQL nhằm tìm nạp dữ liệu doanh số bán hàng.

    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;
    }
    

Tạo trang tổng quan

  1. Hiểu cách hoạt động của bản triển khai và phiên bản cho trình kết nối.
  2. Tạo quá trình triển khai chính thức cho trình kết nối.
  3. Sử dụng đường liên kết Triển khai chính thức để tạo nguồn dữ liệu và báo cáo trong Looker Studio.
  4. Đối với thông số cấu hình token, Cho phép người xem báo cáo sửa đổi các giá trị thông số.
  5. Chia sẻ trang tổng quan với những người dùng được chọn hoặc với “Bất kỳ ai có liên kết”.
  6. Bật tính năng nhúng cho báo cáo.

Nhúng trang tổng quan vào nền tảng của bạn

  1. Tìm hiểu cách hoạt động của tính năng Báo cáo tham số URL.
  2. Truyền giá trị mã thông báo được tạo động bằng các tham số URL vào báo cáo Looker Studio được nhúng.
    Url nhúng của bạn sẽ giống như sau:
    `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

Đề xuất

  • Bạn nên tạo một mã thông báo ngắn hạn.
  • Đảm bảo trang tổng quan không rò rỉ bất kỳ thông tin nào khi đã xem bằng mã thông báo không hợp lệ.