构建 Power Apps 时,一个重要的考虑因素是数据安全性。 您的应用将驱动重要的业务流程,如果用户可以查看敏感数据或删除他们不应访问的记录,则可能会中断您的业务。
例如,如果您的应用程序包含敏感的客户数据,未经授权访问数据可能会使您的公司面临违反隐私法的风险。
你可能会想,“我只会在我的应用程序中隐藏对敏感数据的访问!但是,如果基础数据源与用户共享,他们仍然可以访问数据,或在数据源上构建新应用,从而授予他们访问受限记录的权限。
使用 Dataverse for Teams 在 Teams 中构建 Power Apps 的优势之一是:它提供根据您的特定业务需求设置表权限的功能,这些权限映射 Teams 中的安全角色,例如负责人、成员、来宾和应用用户。
例如,如果有一个表,用户在其中应该只能修改他们拥有的记录,则 Dataverse for Teams 会提供一个名为协作的表权限,使用户只能编辑他们拥有的记录。 在本文中,我们将查看 Dataverse for Teams 中的表权限,并了解如何使用它们来保护重要的业务应用程序。
备注
目前,只有团队负责人才能编辑表权限。
观看本视频,了解如何配置表权限:
了解团队角色
对应用的权限以及用户在 Teams 中使用的数据基于 Teams 团队中的以下角色。
- 负责人 - 具有负责人角色的团队成员。 这包括团队的创建者,以及被其他用户给予负责人角色的任何人。 负责人可以完全访问团队内应用中使用的数据。
- 成员 - 不是负责人的团队成员。 默认情况下,团队成员会像负责人一样获得完全访问权限,但您也可以更改团队成员的权限。 您可能希望限制成员编辑某些表的能力。
- 来宾 - 来宾是添加到团队中的组织外部人员。 默认情况下,来宾可以创建记录,但不能查看其他人创建的记录。
- 具有访问权限的同事:借助适用于 Teams 的 Power Apps,您可以与 Azure AD 安全组共享应用,该安全组的成员无需属于构建该应用的 Teams 团队。 这使您能够将用户添加到应用程序而无需将他们添加到特定团队,并且会打开“广泛分发”场景。 例如,您可能想要构建一个为组织中的每位会计师甚至是组织中的每位员工启用的应用。
了解表权限
为表分配安全性时,您可以分配以下权限:
- 完全访问权限 – 允许最终用户查看和编辑表中的所有记录。
- 协作 – 允许最终用户查看所有记录并创建新记录。 但他们只能编辑或删除自己的记录。 例如,在“视角”应用中对想法投赞成票时,您需要使用协作功能。 您希望应用的每个用户都查看其他用户的赞成票。 但是,除了自己的投票以外,他们不应该能够改变任何其他用户的投票。
- 引用 – 提供数据的只读视图。 用户无法创建、编辑或删除任何记录。 例如,在“公告”应用中,如果您希望用户阅读公告记录但不编辑它们,那么您可以授予他们对公告表的引用权限。
- 专用– 用户可以创建新记录。 此外,他们只能查看、编辑或删除自己的记录。 例如,在“问题报告”应用中,如果您希望用户在 Dataverse 中只能创建和查看他们自己的问题记录,则您应授予他们对问题报告表的专用权限。
真实场景中的表权限
我们来看一下如何实际使用表权限。 我们将创建一个表,然后显示两个不同用户看到的内容。
备注
要完成本课程的这一部分,您需要一个具有两个用户登录名的环境。 其中一个具有团队负责人角色,另一个具有团队成员(未被授予负责人角色的团队成员)角色
以团队负责人身份登录到 Teams。
使用 Dataverse for Teams 数据库在团队中创建一个应用和表。
右键单击 Power Apps 图标并弹出应用。
创新一个新应用。
- 应用名称:“车辆经理”
- 选择创建新表并将其命名为“车辆”。
- 添加“品牌”、“型号”、“制造年份”列。
- 选择显示/隐藏列。
- 从“显示/隐藏列”对话框中,选择负责人字段并选择保存。
您的表现在应如下所示:
在表中添加一条记录:
- 选择添加行。
- 输入记录详细信息。
- 创建的记录的负责人字段将反映您的登录用户帐户。
选择表定义屏幕外部的区域以返回到应用。
保存并发布应用。 您需要选择将在其中显示应用的渠道—选择所需渠道名称旁边的 + 以选择渠道。
配置并验证表权限
我们将为团队成员设置对车辆表的权限:
在 Teams 中,打开 Power Apps 应用。 在 Teams 中右键单击 Power Apps 图标,然后选择弹出应用。 这将在新窗口中弹出该应用,因此,如果您移动到 Teams 中的其他位置,您将不会丢失所做的更改。
选择生成选项卡。
选择包含“车辆经理”应用的团队。
在为…创建的项目区域中,选择查看全部。
从解决方案组件栏中选择表。
选择“车辆”表,然后选择管理权限。
选择成员节点。 初始权限将显示完全访问权限。 选择专用权限,然后选择保存。
接下来,我们将以非负责人团队成员用户身份登录 Teams,以观察他们的体验。
- 使用安装应用所在团队的成员用户身份登录 Teams。
- 选择安装应用的渠道。
- 选择“车辆经理”应用的选项卡。
- 该应用应该会为用户打开,但库中不会显示任何记录,因为用户只能查看自己的记录。
- 选择新建记录以创建新的车辆记录,选择复选标记以保存该记录。
- 现在,您应在库中看到一条记录。
退出 Teams 并以团队负责人身份重新登录。 现在转到该表,并查看创建的数据。
使用团队负责人个人身份登录 Teams。
右键单击 Power Apps 图标并弹出应用。
选择生成选项卡。
选择安装了“车辆经理”应用的团队
选择“车辆”表
选择编辑。
现在,您将在“车辆”表中看到两条记录,每个记录都有一个不同的负责人。
那么这将如何应用于 Teams 的示例应用程序模板之一?
例如,我们可以使用“公告”在应用中设置对表的以下权限:
表 | 权限 | 原因 |
---|---|---|
公告 | 参考 | 用户应阅读所有公告,但不应编辑或创建公告。 |
公告书签 | 专用 | 用户应创建自己的公告,但不应查看或编辑其他用户的书签。 |
公告类别 | 参考 | 用户应阅读所有类别,但不应编辑或创建类别。 |
公告类别首选项 | 专用 | 用户应创建自己的类别首选项,但不应该能够读取或编辑其他用户类别首选项。 |
公告联系人 | 参考 | 用户应该阅读所有联系人记录,但不应创建或编辑联系人。 |
公告常见问题解答 | 参考 | 用户应该阅读所有常见问题解答记录,但不应创建或编辑现有的常见问题解答记录。 |
公告常见问题解答类别 | 参考 | 用户应该阅读所有常见问题解答类别,但不应创建或编辑现有的常见问题解答记录 |
公告链接 | 参考 | 用户应该阅读所有链接,但不应创建或编辑现有的链接记录。 |
公告链接类别 | 参考 | 用户应该阅读所有链接类别,但不应创建或编辑现有的链接类别。 |
公告阅读回执 | 专用 | 用户应该能够在查看公告时创建新的阅读回执,但不能读取或编辑其他用户阅读回执。 |
公告用户设置 | 专用 | 用户应能够创建新用户设置记录,但不能读取或编辑其他用户设置记录。 |
我应共享哪些权限?
在分配权限之前,您应该根据应用用户的角色来规划您的安全性。 谁将管理应用? 谁将使用此应用? 他们将如何使用它?
例如,Teams 的“检查”示例应用模板旨在面向以下角色:
- 检查经理 - 创建“检查”窗体并管理位置或资产列表。
- 检查审核员 - 审核检查数据并批准检查。
- 检查用户 - 完成检查。
定义角色后,请将这些角色与它们应该分配到的团队角色相关联:
- 检查经理 - 由于检查经理需要完全访问权限才能创建检查窗体和其他系统表记录,因此我们将把他们设为团队负责人。
- 检查审核员 - 由于检查审核员应能够编辑所有检查,但他们不应创建检查窗体,所以我们将把他们设为团队成员。 这将使我们能够为他们提供对区域检查清单表(存储检查窗体数据的位置)的引用访问权限,以及对区域检查表(存储检查记录的位置)的完全访问权限。
- 检查用户 - 检查用户应该只能提交新的检查,而不能创建新的检查窗体或查看其他用户的检查。 所以我们不会将他们设为安装该应用所在团队的成员,我们会将他们作为同事与他们共享该应用,并为其提供对区域检查清单的引用权限,以及对区域检查的专用权限。 这将允许用户查看检查窗体并创建他们自己的检查记录。
有关 Teams 示例应用模板的推荐表权限的更多详细信息,请参阅有关广泛部署示例应用模板的文章,例如将 Profile+ 部署为广泛分发应用。