Cách cài đặt bảo mật cho ứng dụng trong Appsheet

Nội dung được viết bởi Kim Thu

Sau khi tạo xong một ứng dụng bằng Google Appsheet, chúng ta tiếp tục đi đến một phần khá quan trọng trong Appsheet, đó chính là cài đặt bảo mật. Appsheet có nhiều tùy chọn bảo mật chẳng hạn như yêu cầu người dùng đăng nhập vào app trước khi sử dụng hay phân quyền cho người dùng,...

Vậy cách cài đặt bảo mật cho ứng dụng trên Appsheet như thế nào. Cùng Gitiho tìm hiểu trong bài viết ngày hôm nay nhé!

Các tùy chọn bảo mật trong Google Appsheet

Google Appsheet có nhiều tùy chọn bảo mật người dùng cho ứng dụng, tuy nhiên chúng ta có thể chia ra 2 loại chính là:

Public App:

Bạn có thể truy cập và sử dụng ứng dụng này bởi nó là ứng dụng được công khai. Tuy nhiên, ứng dụng này không yêu cầu người dùng phải đăng nhập nên dữ liệu không được bảo mật. Để sử dụng Public app, bạn sẽ phải trả một khoản phí là $50/ tháng.

Login App (Subscription Plan):

Loại ứng dụng này đòi hỏi người dùng phải đăng nhập vào bằng tài khoản của họ. Mỗi địa chỉ email đăng nhập vào app được tính là một người dùng riêng biệt. Appsheet hiện nay cung cấp chia sẻ miễn phí cho 10 người dùng (bao gồm 9 người dùng và 1 tài khoản mặc định). 

Nếu bạn muốn chia sẻ cho hơn 10 người dùng, bạn sẽ cần trả phí cho Google tương ứng với số lượng người dùng mà bạn chia sẻ. Ví dụ, nếu bạn muốn chia sẻ với 11 người dùng, bạn sẽ phải trả phí hàng tháng cho 11 người dùng.

Chi phí sử dụng Appsheet để tạo ứng dụng
Chi phí sử dụng Appsheet để tạo ứng dụng

Lưu ý: Để sử dụng được hầu hết các tính năng của Appsheet, bạn sẽ phải sử dụng gói Core có chi phí $10/ người dùng/ tháng. Tuy nhiên, nếu bạn dùng email doanh nghiệp của Google thì sẽ được sử dụng miễn phí góp Appsheet Core.

Cách cài đặt bảo mật với Appsheet

Kết nối dữ liệu nguồn của các ứng dụng được tạo bởi Appsheet thường là bảng tính Google Sheet hoặc cơ sở dữ liệu Database. Và chắc chắn bạn sẽ muốn cài đặt bảo mật dữ liệu cho các ứng dụng của bạn. Bạn có thể thử 2 cách sau:

Bảo mật qua email: Với cài đặt bảo mật này, chỉ những người dùng được cho phép và đã có email đã xác nhận mới có thể truy cập vào ứng dụng. Quản lý danh sách email được phép truy cập nằm trong phần Security > Require Sign-In của Appsheet Editor.

Bảo mật ứng dụng trong Appsheet qua email
Bảo mật ứng dụng trong Appsheet qua email

Bảo mật bằng user setting: Tạo một bảng cài đặt người dùng (user setting) trong ứng dụng của mình và cho phép người dùng nhập thông tin cá nhân hoặc cài đặt riêng của họ. 

Thông tin này có thể được sử dụng để kiểm soát quyền truy cập, hiển thị hoặc ẩn các tính năng, cũng như tùy chỉnh nội dung của ứng dụng. Bạn có thể thiết lập cài đặt người dùng trong phần Data > Tables > User Settings của Appsheet Editor.

Bảo mật bằng email

Vào phần bảng trong menu Data > chọn Table Settings.

Vào cài đặt Data settings
Vào cài đặt Data settings

Trong cài đặt Table, có các tùy chọn cho phép người dùng chỉnh sửa dữ liệu như: Updates (cập nhật), Add (thêm), Delete (Xóa) và Read only (chỉ đọc). 

Các tùy chọn phân quyền người dùng trong table settings
Các tùy chọn phân quyền người dùng trong table settings

Nếu bạn muốn phân quyền cho từng người thì hãy nhấn vào biểu tượng cái lọ ở bên phải, sau đó điền email của các người dùng mà bạn muốn phân quyền với chức năng tương ứng vào công thức:

SWITCH(USEREMAIL(), 
  "user1@mydomain.com", "UPDATES_ONLY", 
  "user2@mydomain.com", "ALL_CHANGES", 
  "READ_ONLY")

Trong đó: 

  • user1@mydomain.com và user2@mydomain.com là email người dùng mà bạn muốn phân quyền.
  • "UPDATES_ONLY", ALL_CHANGES",  "READ_ONLY" là cài đặt phân quyền tương ứng với user1 và user2.
Nhập công thức phân quyền cho người dùng trong table settings
Nhập công thức phân quyền cho người dùng trong table settings

Ngoài ra, bạn có thể cài đặt và tùy chỉnh thêm một số quyền cho người dùng như sau:

"ADDS_ONLY", "ADDS_AND_UPDATES", "DELETES_ONLY", "UPDATES_AND_DELETES", "ADDS_AND_DELETES"

Cách cài đặt phân quyền này khá dễ thực hiện, tuy nhiên bạn cần cài đặt thủ công lại toàn bộ mỗi khi chia sẻ ứng dụng và phân quyền cho một email mới vào hệ thống. Chưa kể chúng ta sẽ không nắm được chính xác ai đang được phân quyền nào trong Appsheet.

Bởi vậy, có một giải pháp khác để phân quyền người dùng trong Appsheet hiệu quả hơn, đó là tạo bảng phân quyền.

Tạo bảng phân quyền cho người dùng

Tạo một bảng chứa thông tin người dùng trong file dữ liệu gốc của Appsheet mà bạn thiết lập khi xây dựng ứng dụng ban đầu. Đặt tên cho sheet đó (Ví dụ: NHAN_VIEN). Bạn có thể xem minh họa trong hình dưới đây:

Tạo bảng phân quyền cho người dùng
Tạo bảng phân quyền cho người dùng

Thiết lập công thức

Bước 1: Quay trở lại cài đặt Data của Appsheet, thêm mới một Table.

Tạo table mới trong Data của Appsheet
Tạo table mới trong Data của Appsheet

Chọn datasource là Googlesheet

Chọn datasource là Googlesheet
Chọn datasource là Googlesheet

Chọn liên kết tới bảng dữ liệu gốc

Chọn liên kết tới bảng dữ liệu gốc
Chọn liên kết tới bảng dữ liệu gốc

Điều hướng tới sheet NHAN_VIEN mà bạn vừa tạo trong file dữ liệu gốc.

Điều hướng tới sheet muốn liên kết dữ liệu
Điều hướng tới sheet muốn liên kết dữ liệu

Trong bảng phân quyền (phan_quyen) ở menu Data, chọn loại Type là Enum.

Định dạng kiểu dữ liệu cho bảng
Định dạng kiểu dữ liệu cho bảng

Quay lại phần cài đặt Table Settings trong tab Data:

cài đặt Table Settings trong tab Data
cài đặt Table Settings trong tab Data

Ta cần thiết lập công thức vào ô Are updates allowed như bên dưới:

ifs(
Lookup(useremail(),NHAN_VIEN,email,phan_quyen)="Admin","ALL_CHANGES",
Lookup(useremail(),NHAN_VIEN,email,phan_quyen)="Quản lý","UPDATES_AND_DELETES",
Lookup(useremail(),NHAN_VIEN,email,phan_quyen)="Nhân viên","ADDS_ONLY",
)

Sau đó nhấn Save để lưu lại > nhấn Done.

Điền công thức vào ô Are updates allowed
Điền công thức vào ô Are updates allowed

Nhấn lưu lại trên khung cài đặt để hoàn tất cài đặt phân quyền.

Sau khi công thức được thiết lập, bạn có thể bắt đầu gán quyền cho người dùng trong bảng phân quyền của sheet NHAN_VIEN.

Tuy nhiên, cách làm này vẫn có hạn chế trong một số trường hợp mà nó không thể xử lý được. Chẳng hạn như chúng ta cài đặt cho Nhân viên chỉ có quyền thêm (ADDS_ONLY), nhưng trong một số hoàn cảnh, bạn cần phải phân quyền khác cho họ.

Hạn chế của cách tạo bảng phân quyền
Hạn chế của cách tạo bảng phân quyền

Chính vì thế, cài đặt phân quyền như trên không thể giải quyết được bài toán khi có nhiều trường hợp phân quyền đưa ra. Bởi thế, chúng ta có cách làm tối ưu hơn là Phân quyền trực tiếp trên Action.

Phân quyền trực tiếp trên Action

Khi người dùng tác động vào dữ liệu thông qua các Action cụ thể, Appsheet sẽ dựa trên Action đó để hoạt động. Do đó, chúng ta có thể phân quyền trực tiếp trên Action để kiểm soát và phân quyền cho người dùng chi tiết hơn.

Chúng ta cần tạo thêm 4 cột trong file dữ liệu gốc: quyen_xem, quyen_them, quyen_sua, quyen_xoa

tạo thêm 4 cột phân quyền trong file dữ liệu gốc
tạo thêm 4 cột phân quyền trong file dữ liệu gốc

Bước 1: Trong cài đặt table của menu Data, thiết lập giá trị cho 4 bảng quyen_xem, quyen_them, quyen_sua, quyen_xoa như sau:

  • Chọn EnumList trong mục Type và nhấn vào biểu tượng chỉnh sửa (cái bút)
Định dạng cho các bảng phân quyền
tạo thêm 4 cột phân quyền trong file dữ liệu gốc
  • Nhấn Add (thêm) trong mục Values, thêm 2 giá trị mới là Đơn hàng và Sản phẩm > nhấn Done
Thêm giá trị cho bảng quyền xem
Thêm giá trị cho bảng quyền xem

Bước 2: Vào menu Views và Add Views để tạo giao diện chỉnh cho bảng Nhân Viên. Điền thông tin tùy chỉnh như sau:

  • View name: NHAN_VIEN
  • For this data: NHAN_VIEN
  • View Type: Table
  • Position: menu
  • Column width: Narrow
  • Display - Icon: hide (ẩn)
Cài đặt view cho bảng nhân viên
Cài đặt view cho bảng nhân viên

Sau đó chúng ta bấm Save để lưu lại

lưu lại cài đặt view trong Appsheet
lưu lại cài đặt view trong Appsheet

Bước 3: Cài đặt action phân quyền cho nhân viên:

Đầu tiên, hãy xóa phần cài đặt table settings đã thiết lập trước đó để thiết lập lại.

xóa phần cài đặt table settings đã thiết lập trước đó
xóa phần cài đặt table settings đã thiết lập trước đó

Vào menu Action, nhấn vào hành động Add (thêm).

Vào mục Add trong menu Action
Vào mục Add trong menu Action

Kéo xuống phần Behavior và nhập công thức vào ô Only if this condition is true như sau:

IF(CONTAINS(LOOKUP(USEREMAIL(),NHAN_VIEN,email,quyen_them),"Đơn hàng"),true,false)
Nhập công thức vào phần Behavior
Nhập công thức vào phần Behavior

Tương tự, chúng ta cũng điền công thức như sau vào action Delete và Edit:

IF(CONTAINS(LOOKUP(USEREMAIL(),NHAN_VIEN,email,quyen_xoa"Đơn hàng"),true,false)
IF(CONTAINS(LOOKUP(USEREMAIL(),NHAN_VIEN,email,quyen_sua"Đơn hàng"),true,false)

Sau đó nhấn Save để lưu lại cài đặt. Bây giờ, bạn có thể vào mục view của app để xem thử quyền của một user đã được cập nhật hay chưa.

Bước 5: Vừa xong, chúng ta mới chỉ cài đặt phân quyền trực tiếp trên Action đối với bảng đơn hàng. Bạn có thể tiếp tục phân quyền cho các bảng còn lại như Kho, Sản Phẩm, Thông tin,... và cách làm hoàn toàn tương tự bước 4.

User Settings là gì? Cài đặt đăng nhập và tùy chỉnh cho người dùng

Appsheet là nền tảng tạo ứng dụng miễn phí, tuy nhiên nó sẽ bắt đầu tính phí $10/ 1 user khi bạn có hơn 10 người dùng. Bởi vậy, nhiều doanh nghiệp để nhiều người dùng chung một tài khoản gmail để tiết kiệm chi phí (thường là tối đa 5 người dùng đăng nhập trên 1 tài khoản cùng lúc).

Và bài toán ở đây là chúng ta sẽ phân quyền như thế nào để 2 hoặc nhiều người cùng đăng nhập vào ứng dụng bằng một tài khoản nhưng lại có các quyền khác nhau?

Để thực hiện điều này, chúng ta sử dụng tính năng USERSETTINGS để tạo ra phần đăng nhâp cho app của bạn. 

Bước 1: Vào menu Data > chọn User settings

Cài đặt người dùng User settings
Cài đặt người dùng User settings

Trong Option 1 bạn điều là usernameOption 2 điền là password. Sau đó đặt kiểu Type là dạng Text và bấm nút Show.

Đặt định dạng text cho username và password
Đặt định dạng text cho username và password

Bước 2: Trở lại với bảng dữ liệu gốc, thêm một cột password vào bảng NHAN_VIEN

Thêm cột password vào dữ liệu gốc
Thêm cột password vào dữ liệu gốc

Tiếp theo ta vào bảng dữ liệu NHAN_VIEN trong menu Data và nhấn vào biểu tượng Regenerate structure

Làm mới dữ liệu bảng nhân viên
Làm mới dữ liệu bảng nhân viên

Sau khi làm mới dữ liệu thì chúng ta đã thấy có một hàng password đã xuất hiện trong bảng NHAN_VIEN trên Appsheet.

Dữ liệu bảng sau khi đã được làm mới
Dữ liệu bảng sau khi đã được làm mới

Bước 3: Cài đặt đăng nhập chính xác cho Username và password

Nếu chỉ dừng lại ở bước 2 thì khi người dùng đăng nhập một username hay password bất kỳ thì họ vẫn có thể vào được app. Như vậy cài đặt user settings không còn ý nghĩa gì nữa.

Cài đặt đăng nhập app chưa được khớp chính xác
Cài đặt đăng nhập app chưa được khớp chính xác

Bởi vậy, chúng ta tiếp tục vào phần Data > User Settings > Bấm vào biểu tượng Edit (cái bút) của Username

Kéo xuống mục Data Validity, và điền các công thức sau:

Valid If:

LOOKUP([_THISROW].[Username],nhan_vien,id,id)=[_THISROW].[Username]

Invalid value error:

"Tên đăng nhập sai"
Cài đặt khớp chính xác username
Cài đặt khớp chính xác username

Tương tự bạn chỉnh sửa công thức trong mục Data Validity của cột Password tương tự như trên:

Valid If:

LOOKUP([_THISROW].[Username],nhan_vien,id,Password)=[_THISROW].[Password]

Invalid value error:

"Mật khẩu sai"

Điền giá trị Date Validity như hình minh họa:

Cài đặt khớp chính xác password
Cài đặt khớp chính xác password

Và phần cài đặt đăng nhập user cơ bản đã xong, để biết thêm các thiết lập nâng cao hơn trong user settings, bạn có thể tham khảo khóa học Làm chủ Google Appsheet từ cơ bản tới nâng cao của Gitiho. 

1,900,000đ 2,000,000đ

Khóa học sẽ tiết lộ thêm cách thức thiết lập phân quyền cho những người dùng chung một email, và làm sao để lập các công thức với hàm USERSETTINGS(), và hơn thế.

Ngoài ra, bạn sẽ được học mọi kiến thức từ cơ bản đến nâng cao giúp bạn làm chủ Google Appsheet chẳng hạn cách làm việc với dữ liệu trên Appsheet, tạo và tùy biến giao diện cho ứng dụng, tạo action và quy trình tự động hóa Automation,... 

Những bài học này đủ để bạn có thể tạo một app mà không cần biết lập trình chẳng hạn tạo ứng dụng quản lý kho ngay sau khi hoàn thành khóa học. Đăng ký và học tập ngay cùng Gitiho bạn nhé!

Kết luận

Vậy là trong bài viết này, chúng ta đã tìm hiểu về cách cài đặt bảo mật cho ứng dụng trong AppSheet để hoàn thiện app và bảo vệ tốt thông tin người dùng và doanh nghiệp. Lưu ý rằng các tùy chọn bảo mật như quản lý truy cập qua email và cài đặt người dùng vô cùng quan trọng trong quá trình xây dựng app nhé.

Tiếp tục theo dõi các bài viết tiếp theo trên Gitiho blog để khám phá thêm về các chủ đề liên quan đến AppSheet và cách tối ưu hóa ứng dụng của bạn. Cảm ơn bạn đã đọc và chúc bạn thành công!

Gitiho đã cho ra mắt khóa học Google Sheets từ Cơ bản đến Nâng cao, công cụ thay thế Excel giúp bạn hoàn toàn có thể tự tin phân tích và xử lý dữ liệu trên Google Sheet, lập bảng biểu, báo cáo trực quan và hơn thế nữa. Bấm vào để học thử ngay!

/5 - ( bình chọn)

/5 - ( bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông