应用中的安全功能

已完成

设置安全功能时,您可为应用设置四个不同的安全层:

  • 应用级别 - 限制应用的访问权限。
  • 窗体级别 - 对于具有本安全级别的模型驱动应用,仅允许特定安全组访问特定窗体。 如要按工作角色限制用户输入或查看数据的方式,本级别很有用。
  • 行级别 - Dataverse 安全模型控制行访问权限。
  • 列级别 - 控制表中单个列的访问权限。

安全功能应设置在平台层,而非应用层 您可以通过多种方法控制应用中的数据读取和写入。 您可在模型驱动窗体中将列设置为只读、使用 JavaScript 遮掩列使用户无法查看以及隐藏窗体和视图中的字段。 这些方法均未真正实施安全功能。 这些方法不保护数据,用户仍可通过高级查找在 Excel Online 中编辑等其他方式获取数据。

此外,所有用户都有权使用 API,可以使用合作伙伴和社区工具访问数据。 为了实施适当的安全功能,应部署 Dataverse 的安全功能。

提升的权限和模拟

您应避免为用户提供高级权限。 插件 .NET 程序集、经典工作流和 Power Automate 云端流可以使用提高的权限运行,代表用户执行操作。 如有必要,API 代码可以模拟其他用户。

自动化

解决方案架构师应考虑在管理用户和安全功能方面实现自动化。 例如您可以通过 API 控制创建团队到共享行等许多方面。

您可以根据系统中发生的事件触发插件或 Power Automate 流更改用户的安全功能。 例如您可以自动提升备用客户经理或共享其数据,以便用户在主要客户经理休假期间管理客户。

性能

包含大量用户和/或数据的解决方案必须注意选项的影响,例如:

  • 过度共享可能产生可观的开销。
  • 业务单位过多会导致访问速度变慢。
  • 对事件运行的流程过多。
  • 糟糕的插件设计。

糟糕的安全设计可能导致性能低下。 可用于改进安全性能的技术包括:

  • 寻找提升安全性的方法,比如与团队而非用户共享。
  • 尽量减少业务单位的数量。
  • 使用访问团队而非所有者团队。
  • 使用实际容量和安全应用场景进行测试,验证设计。
  • 使用 Microsoft Power Platform 管理中心中的分析工具查看 API 调用和大容量流程。

尽量简化安全设计是提升性能的最佳方式。

分离并优化使用模式

解决方案架构师应针对不同的使用模式进行优化。 具体而言,您需要使用不同的安全模型功能提供必要的访问权限,让不同的用户通过不同的方式访问相同的记录,如以下图表所示。

优化各种使用模式的图表。

不同的业务领域可以不同的方式建模

并非所有用户都采用相同的工作方式。 解决方案架构师应反思不同业务部门的工作模式,然后以不同的方式对各区域建模,从而获得优化解决方案,如以下图表所示。

以不同的方式对不同的业务领域建模图表。

将例外情况建模为例外

解决方案架构师应尽量高效地对通用访问模式建模并在需要复杂访问权限时使用更精细的模型。 共享是例外处理的好例子。 应尽量与团队共享。

将例外情况建模为例外的图表。

将历史记录与有效数据分开

很少访问的大量历史数据会影响对当前数据的访问。 解决方案架构师应考虑在单独的表中对安全模型中的数据进行分区,然后提供支持偶尔访问的辅助机制。

查阅数据模型帮助实施安全功能

某些数据模型调整可以让安全建模更轻松。 解决方案架构师应确定定义新数据边界能否简化安全建模。 例如可将财务报告信息从帐户记录移至单独的财务表,允许所有人查看帐户表,但仅限经理查看财务表,而无需定义帐户记录的单独访问权限。