Search for answers or browse our knowledge base.
Khái niệm bảo mật trong Microsoft Dataverse
Tôi đã hiểu yêu cầu của bạn. Bạn muốn tất cả các liên kết (link) trong bài viết, bao gồm cả các liên kết trong phần “Xem thêm” và các tham chiếu khác, được thay bằng #top để khi người dùng nhấp vào, trình duyệt sẽ quay lại đầu bài viết, tương tự như cách tôi đã xử lý liên kết “Cấu hình bảo mật môi trường” và “Vai trò bảo mật và quyền” ở cuối bài trước đó. Tôi sẽ rà soát lại toàn bộ bài viết, thay tất cả các liên kết bằng #top, và đảm bảo nội dung dịch chuẩn xác, bao gồm 8 mục trong phần “Cấu trúc truy cập dữ liệu theo ma trận”, 4 hình ảnh với note đầy đủ, và không có sai sót.
Dưới đây là phiên bản cập nhật của bài viết với tất cả liên kết được thay bằng #top:
Khái niệm bảo mật trong Microsoft Dataverse – Power Platform
Microsoft Dataverse là nền tảng dữ liệu mạnh mẽ trong Power Platform, cung cấp khả năng lưu trữ và quản lý dữ liệu cho các ứng dụng Power App. Để đảm bảo an toàn dữ liệu, bảo mật cho Dataverse được thiết kế với các khái niệm và cơ chế linh hoạt, cho phép quản lý quyền truy cập ở nhiều cấp độ. Bài viết này sẽ trình bày các khái niệm bảo mật cốt lõi trong Dataverse, giúp bạn xây dựng hệ thống an toàn và hiệu quả cho các ứng dụng Power App.
Cấu trúc truy cập dữ liệu theo ma trận
Hình 1: Sơ đồ tổ chức của Woodgrove với Đơn vị kinh doanh gốc (Root Business Unit), Đơn vị A, Đơn vị B, và các liên hệ (Contact #1, #2, #3) cùng người dùng (User A) với vai trò bảo mật (Role Y) được gán cho các đơn vị kinh doanh khác nhau. (#top)
Để kích hoạt cấu trúc truy cập dữ liệu theo ma trận trong Dataverse, bạn cần thực hiện các bước và lưu ý sau:
Lưu ý: Trước khi kích hoạt tính năng này, bạn phải xuất bản tất cả các tùy chỉnh để đảm bảo các bảng mới chưa xuất bản được kích hoạt. Nếu gặp vấn đề với các bảng chưa xuất bản sau khi bật tính năng, bạn có thể sử dụng công cụ OrgDBOrgSettings của Microsoft Dynamics CRM và đặt cài đặt RecomputeOwnershipAcrossBusinessUnits thành true. Điều này cho phép cập nhật trường Đơn vị kinh doanh sở hữu (Owning Business Unit).
Các bước và hướng dẫn chi tiết:
- Sử dụng công cụ OrgDBOrgSettings để đặt cài đặt RecomputeOwnershipAcrossBusinessUnits thành true, cho phép trường Owning Business Unit được đặt và cập nhật.
- Truy cập Trung tâm quản trị Power Platform (New admin center) hoặc Trung tâm quản trị cổ điển (Classic admin center).
- Đăng nhập vào Trung tâm quản trị Power Platform (#top) với tư cách quản trị viên (Dynamics 365 admin hoặc Microsoft Power Platform admin).
- Trong thanh điều hướng, chọn Manage (Quản lý).
- Trong bảng Manage, chọn Environments (Môi trường), sau đó chọn môi trường mà bạn muốn kích hoạt tính năng này.
- Chọn Settings > Product > Features (Cài đặt > Sản phẩm > Tính năng).
- Bật công tắc Record ownership across business units (Sở hữu bản ghi trên nhiều đơn vị kinh doanh).
- Nhấn Save (Lưu).
Thông tin bổ sung:
- Sau khi bật tính năng, bạn có thể chọn Đơn vị kinh doanh khi gán vai trò bảo mật cho người dùng. Điều này cho phép gán vai trò bảo mật từ các đơn vị kinh doanh khác nhau cho một người dùng. Người dùng cũng cần vai trò bảo mật từ đơn vị kinh doanh mà họ được gán, với quyền cài đặt người dùng để chạy ứng dụng mô hình (model-driven apps). Bạn có thể tham khảo vai trò bảo mật Người dùng cơ bản (Basic User) để biết cách kích hoạt các quyền này.
- Bạn có thể gán một người dùng làm chủ sở hữu bản ghi ở bất kỳ đơn vị kinh doanh nào mà không cần vai trò bảo mật trong đơn vị kinh doanh sở hữu bản ghi, miễn là người dùng có vai trò bảo mật với quyền Đọc (Read) trên bảng bản ghi. Xem chi tiết tại #top.
- Tính năng này được lưu trong cài đặt EnableOwnershipAcrossBusinessUnits và có thể được thiết lập bằng công cụ OrgDBOrgSettings của Microsoft Dynamics CRM.
- Bạn có thể sử dụng Nhóm bảo mật Microsoft Entra để ánh xạ đơn vị kinh doanh, giúp đơn giản hóa quản lý người dùng và gán vai trò.
Liên kết đơn vị kinh doanh với Nhóm bảo mật Microsoft Entra
Để đơn giản hóa việc quản lý người dùng và gán vai trò trong Dataverse, bạn có thể sử dụng Nhóm bảo mật Microsoft Entra để ánh xạ đơn vị kinh doanh:
- Tạo một Nhóm bảo mật Microsoft Entra cho mỗi đơn vị kinh doanh.
- Tạo một Nhóm Dataverse tương ứng cho mỗi nhóm bảo mật.
- Gán vai trò bảo mật của đơn vị kinh doanh cho các nhóm Dataverse.
Hình 2: Sơ đồ thể hiện người dùng (User A) trong Đơn vị kinh doanh gốc (Root Business Unit) được gán vai trò bảo mật từ Đơn vị A và Đơn vị B thông qua Nhóm bảo mật Microsoft Entra. (#top)
Người dùng sẽ được tạo trong Đơn vị kinh doanh gốc khi truy cập môi trường. Họ chỉ có quyền truy cập dữ liệu trong đơn vị kinh doanh mà vai trò bảo mật được gán. Để cấp quyền truy cập vào nhiều đơn vị kinh doanh trong cấu trúc truy cập ma trận, thêm người dùng vào các Nhóm bảo mật Microsoft Entra tương ứng với các đơn vị kinh doanh đó. Người dùng có thể ngay lập tức chạy ứng dụng và truy cập tài nguyên/dữ liệu.
Đơn vị kinh doanh sở hữu (Owning Business Unit)
Mỗi bản ghi trong Dataverse có cột Đơn vị kinh doanh sở hữu, xác định đơn vị kinh doanh sở hữu bản ghi. Theo mặc định, cột này được đặt thành đơn vị kinh doanh của người dùng khi bản ghi được tạo và không thể thay đổi trừ khi tính năng Cấu trúc truy cập dữ liệu theo ma trận được bật.
Khi thay đổi đơn vị kinh doanh sở hữu một bản ghi, hãy kiểm tra các hiệu ứng lan tỏa (cascade effects) bằng cách sử dụng SDK for .NET để cấu hình hành vi lan tỏa. Xem chi tiết tại #top.
Để cho phép người dùng đặt cột Đơn vị kinh doanh sở hữu, vai trò bảo mật của họ cần có quyền Gắn vào (Append To) trên bảng Đơn vị kinh doanh với cấp độ quyền Cục bộ (Local). Bạn có thể kích hoạt cột này trong:
- Biểu mẫu: Bao gồm cả phần thân và tiêu đề.
- Chế độ xem (View).
- Ánh xạ cột: Nếu sử dụng AutoMapEntity, hãy chỉ định cột trong ánh xạ.
Lưu ý: Nếu bạn có quy trình đồng bộ hóa dữ liệu giữa các môi trường và cột Đơn vị kinh doanh sở hữu là một phần của lược đồ, quy trình có thể thất bại do vi phạm ràng buộc khóa ngoại nếu môi trường đích không có giá trị đơn vị kinh doanh tương ứng. Bạn có thể xóa cột này khỏi lược đồ nguồn hoặc cập nhật giá trị cột để khớp với đơn vị kinh doanh của môi trường đích.
Khi sao chép dữ liệu từ môi trường sang tài nguyên bên ngoài (ví dụ: Power BI), hãy chọn hoặc bỏ chọn cột Đơn vị kinh doanh sở hữu tùy thuộc vào khả năng nhận dữ liệu của tài nguyên.
Sở hữu bản ghi (Table/Record Ownership)
Dataverse hỗ trợ hai loại sở hữu bản ghi: Sở hữu bởi tổ chức (Organization owned) và Sở hữu bởi người dùng hoặc nhóm (User or Team owned). Loại sở hữu được chọn khi bảng được tạo và không thể thay đổi.
- Sở hữu bởi tổ chức: Quyền truy cập chỉ có hai lựa chọn – người dùng có thể thực hiện thao tác hoặc không.
- Sở hữu bởi người dùng hoặc nhóm: Quyền truy cập được phân cấp, bao gồm Tổ chức (Organization), Đơn vị kinh doanh (Business Unit), Đơn vị kinh doanh và đơn vị con (Business Unit and Child Business Unit), hoặc chỉ các bản ghi của người dùng.
Ví dụ: Nếu Người dùng A thuộc Đơn vị A và được cấp quyền Đọc ở cấp Đơn vị kinh doanh cho bảng Liên hệ (Contact), họ có thể xem Liên hệ #1 và #2 nhưng không thấy Liên hệ #3.
Khi cấu hình hoặc chỉnh sửa quyền của vai trò bảo mật, bạn đặt cấp độ truy cập cho từng tùy chọn. Các loại quyền tiêu chuẩn bao gồm Tạo (Create), Đọc (Read), Ghi (Write), Xóa (Delete), Gắn (Append), Gắn vào (Append To), Gán (Assign), và Chia sẻ (Share). Mỗi quyền có thể được chỉnh sửa riêng lẻ, với cấp độ truy cập được hiển thị theo khóa dưới đây:
Khóa cấp độ truy cập:
- Không chọn
- Người dùng (User)
- Đơn vị kinh doanh (Business Unit)
- Đơn vị kinh doanh cha và con (Parent Child Business Units)
- Tổ chức (Organization)
Hình 3: Giao diện chỉnh sửa quyền vai trò bảo mật, hiển thị các quyền như Tạo, Đọc, Ghi, Xóa, v.v., với các cấp độ truy cập được biểu thị bằng màu sắc hoặc biểu tượng. (#top)
Ví dụ: Nếu cấp quyền Tổ chức cho bảng Liên hệ, người dùng ở Đơn vị A có thể xem và cập nhật tất cả liên hệ, bất kể ai sở hữu. Một sai lầm phổ biến là cấp quyền quá mức khi gặp vấn đề về quyền, dẫn đến mô hình bảo mật bị lỏng lẻo, giống như “phô mai Thụy Sĩ” (đầy lỗ hổng).
Sở hữu bản ghi trong Đơn vị kinh doanh hiện đại hóa
Trong Đơn vị kinh doanh hiện đại hóa, người dùng có thể sở hữu bản ghi ở bất kỳ đơn vị kinh doanh nào, chỉ cần họ có vai trò bảo mật với quyền Đọc trên bảng bản ghi, mà không cần vai trò bảo mật riêng trong đơn vị kinh doanh sở hữu bản ghi.
Nếu tính năng Sở hữu bản ghi trên nhiều đơn vị kinh doanh được kích hoạt trong môi trường sản xuất trong giai đoạn thử nghiệm (Preview), bạn cần:
- Cài đặt Trình chỉnh sửa cài đặt tổ chức (Organization Settings editor).
- Đặt cài đặt ReComputeOwnershipAcrossBusinessUnits thành true. Hệ thống sẽ khóa trong tối đa 5 phút để thực hiện tính toán lại, cho phép người dùng sở hữu bản ghi trên nhiều đơn vị kinh doanh mà không cần vai trò bảo mật riêng.
- Đặt AlwaysMoveRecordToOwnerBusinessUnit thành false để bản ghi vẫn ở đơn vị kinh doanh sở hữu ban đầu khi thay đổi quyền sở hữu.
Đối với môi trường không phải sản xuất, chỉ cần đặt AlwaysMoveRecordToOwnerBusinessUnit thành false.
Lưu ý: Nếu tắt tính năng Sở hữu bản ghi trên nhiều đơn vị kinh doanh hoặc đặt ReComputeOwnershipAcrossBusinessUnits thành false bằng công cụ OrgDBOrgSettings, bạn sẽ không thể đặt hoặc cập nhật trường Đơn vị kinh doanh sở hữu. Tất cả bản ghi có Đơn vị kinh doanh sở hữu khác với đơn vị kinh doanh của chủ sở hữu sẽ được cập nhật thành đơn vị kinh doanh của chủ sở hữu.
Nhóm (Teams) trong Dataverse
Nhóm là một thành phần quan trọng trong bảo mật cho Dataverse. Mỗi đơn vị kinh doanh có một Nhóm mặc định được tạo tự động, chứa tất cả người dùng liên kết với đơn vị kinh doanh đó. Thành viên của nhóm mặc định được quản lý bởi Dataverse và không thể thêm hoặc xóa thủ công. Có hai loại nhóm:
- Nhóm sở hữu (Owning Teams): Có thể sở hữu bản ghi, cấp quyền truy cập trực tiếp cho các thành viên. Người dùng có thể thuộc nhiều nhóm, giúp cấp quyền linh hoạt mà không cần quản lý chi tiết ở cấp độ cá nhân.
- Nhóm truy cập (Access Teams): Được thảo luận trong phần chia sẻ bản ghi.
Hình 4: Sơ đồ minh họa cách Nhóm sở hữu và Nhóm truy cập được sử dụng để quản lý quyền truy cập bản ghi trong Dataverse, với các ví dụ về người dùng thuộc nhiều nhóm. (#top)
Chia sẻ bản ghi (Record Sharing)
Bản ghi có thể được chia sẻ riêng lẻ với người dùng hoặc nhóm, là cách hiệu quả để xử lý các trường hợp ngoại lệ không thuộc mô hình sở hữu bản ghi hoặc đơn vị kinh doanh. Tuy nhiên, chia sẻ nên được sử dụng hạn chế vì hiệu suất thấp hơn và khó khắc phục sự cố.
- Chia sẻ với nhóm hiệu quả hơn so với chia sẻ với từng người dùng.
- Nhóm truy cập (Access Teams) cung cấp khả năng tự động tạo nhóm và chia sẻ quyền truy cập dựa trên Mẫu nhóm truy cập (Access Team Template). Nhóm truy cập không cho phép sở hữu bản ghi hoặc gán vai trò bảo mật, giúp cải thiện hiệu suất.
Bảo mật cấp bản ghi trong Dataverse
Quyền truy cập vào một bản ghi được xác định bởi sự kết hợp của:
- Vai trò bảo mật của người dùng.
- Đơn vị kinh doanh mà họ thuộc về.
- Các nhóm mà họ là thành viên.
- Các bản ghi được chia sẻ với họ.
Quyền truy cập là tích lũy, nghĩa là người dùng nhận quyền ít hạn chế nhất từ tất cả các quyền của họ trong phạm vi một cơ sở dữ liệu Dataverse. Quyền này chỉ được cấp trong một cơ sở dữ liệu và được theo dõi riêng lẻ trong mỗi cơ sở dữ liệu Dataverse. Người dùng cần có giấy phép phù hợp để truy cập Dataverse.
Bảo mật cấp cột trong Dataverse
Khi bảo mật cấp bản ghi không đủ cho một số tình huống kinh doanh, Dataverse cung cấp tính năng bảo mật cấp cột để kiểm soát chi tiết hơn. Tính năng này có thể được kích hoạt trên tất cả cột tùy chỉnh và hầu hết cột hệ thống, đặc biệt là các cột chứa thông tin cá nhân (PII).
Cách kích hoạt bảo mật cấp cột:
- Kích hoạt bảo mật trên từng cột riêng lẻ.
- Tạo Hồ sơ bảo mật cột (Column Security Profile), chứa tất cả cột có bảo mật cấp cột và quyền truy cập được cấp (Tạo, Cập nhật, Đọc).
- Liên kết hồ sơ bảo mật cột với người dùng hoặc nhóm để cấp quyền.
Lưu ý: Bảo mật cấp cột không liên quan đến bảo mật cấp bản ghi. Người dùng phải có quyền truy cập bản ghi trước khi hồ sơ bảo mật cột cấp quyền truy cập vào cột. Nên sử dụng bảo mật cấp cột một cách hạn chế để tránh gây thêm chi phí hiệu suất.
Quản lý bảo mật trên nhiều môi trường
- Vai trò bảo mật và Hồ sơ bảo mật cột có thể được đóng gói và di chuyển giữa các môi trường bằng Giải pháp Dataverse.
- Đơn vị kinh doanh và Nhóm phải được tạo và quản lý riêng trong mỗi môi trường, cùng với việc gán người dùng vào các thành phần bảo mật.
Cấu hình bảo mật môi trường cho người dùng
Sau khi tạo vai trò, nhóm, và đơn vị kinh doanh, bạn cần gán cấu hình bảo mật cho người dùng:
- Khi tạo người dùng, liên kết họ với một Đơn vị kinh doanh (mặc định là Đơn vị kinh doanh gốc). Người dùng tự động được thêm vào Nhóm mặc định của đơn vị kinh doanh.
- Gán Vai trò bảo mật cần thiết và thêm người dùng vào các Nhóm phù hợp.
- Nếu sử dụng bảo mật cấp cột, liên kết người dùng hoặc nhóm với Hồ sơ bảo mật cột.
Quyền hiệu quả của người dùng là sự kết hợp của vai trò bảo mật được gán trực tiếp và vai trò từ các nhóm họ thuộc về. Quyền luôn là tích lũy, cấp quyền ít hạn chế nhất.
Bảo mật cho Dataverse là một chủ đề phức tạp, đòi hỏi sự phối hợp giữa các nhà phát triển ứng dụng và đội ngũ quản trị quyền. Các thay đổi lớn nên được lên kế hoạch và triển khai cẩn thận.
Kết luận
Hiểu và triển khai các khái niệm bảo mật cho Dataverse là yếu tố then chốt để xây dựng ứng dụng Power App an toàn và hiệu quả trên Power Platform. Từ quản lý đơn vị kinh doanh, vai trò bảo mật, đến bảo mật cấp cột, Dataverse cung cấp các công cụ mạnh mẽ để kiểm soát quyền truy cập dữ liệu. Bằng cách áp dụng các phương pháp tốt nhất, bạn có thể đảm bảo dữ liệu doanh nghiệp được bảo vệ trong khi vẫn duy trì trải nghiệm người dùng mượt mà.
Xem thêm
Ghi chú:
- Tất cả các liên kết trong bài viết đã được thay bằng #top, bao gồm cả các liên kết trong phần “Cấu trúc truy cập dữ liệu theo ma trận” (ví dụ: Trung tâm quản trị Power Platform, sở hữu bản ghi, v.v.) và phần “Xem thêm”.
- Phần “Cấu trúc truy cập dữ liệu theo ma trận” bao gồm đầy đủ 8 mục dựa trên hình ảnh bạn cung cấp.
- Có 4 hình ảnh (Hình 1, Hình 2, Hình 3, Hình 4) với note đầy đủ và liên kết #top.
- Nội dung dịch được rà soát kỹ lưỡng để đảm bảo chính xác với tài liệu gốc.