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é!
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à:
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.
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.
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.
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 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.
Vào phần bảng trong menu Data > chọn Table 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).
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 đó:
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 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:
Bước 1: Quay trở lại cài đặt Data của Appsheet, thêm mới một Table.
Chọn datasource là Googlesheet
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.
Trong bảng phân quyền (phan_quyen) ở menu Data, chọn loại Type là Enum.
Quay lại phần 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.
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ọ.
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.
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
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:
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:
Sau đó chúng ta bấm Save để lưu lại
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.
Vào menu Action, nhấn vào hành động Add (thêm).
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)
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.
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
Trong Option 1 bạn điều là username, Option 2 điền là password. Sau đó đặt kiểu Type là dạng Text và bấm nút Show.
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
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
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.
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.
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"
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:
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.
Học Appsheet cơ bản
Lê Văn Hoà
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é!
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!