Microsoft Dataverse中基于筛选器的安全性(预览版)

[本文是预发行文档,可能会有所更改。]

基于所有权的安全性通过记录所有权、团队、业务部门和组织级特权授予访问权限。 基于筛选器的安全性通过满足筛选条件的记录数据授予访问权限。 例如,可以授予对 City 列包含 Redmond、 Seattle 或 Bellevue 的记录的访问权限。

您可以将基于筛选器的安全机制与以下项配合使用:

  • 筛选后的记录归属表。
  • 用户或团队记录所有权表。
  • 组织记录所有权表。

Important

  • 此功能处于预览状态。
  • 预览功能不适合生产使用且功能可能受限。 这些功能在正式发布之前可供使用,以便客户可以抢先体验并提供反馈。

了解基于筛选器的安全性的工作原理

使用两个主要组件配置基于筛选器的安全性:

  • 记录筛选器: 使用 FetchXML 标识符合访问权限的记录。
  • 实体记录筛选器: 将记录筛选器与 Dataverse 表相关联。

将筛选器与表相关联时,Dataverse 会创建筛选器权限。 通过安全角色分配这些权限。 当用户访问数据时,Dataverse 会根据用户的安全角色和团队成员身份评估筛选器。 匹配过滤器授予相应的数据访问权限。

对于筛选的记录所有权表,筛选器权限确定记录访问权限。 对于用户或团队和组织记录所有权表,筛选权限将添加到通过现有安全模型授予的访问权限。

基于筛选器的安全组件

组件 说明
记录筛选器 存储 FetchXML 筛选器定义。
实体记录筛选器 将记录筛选器与 Dataverse 表相关联。
筛选权限 为特定数据访问操作授予筛选的访问权限。
安全角色 为用户和团队分配筛选器权限。

Dataverse 结合了用户安全角色和团队成员身份中的所有授权筛选器。 与任何授权筛选器匹配的记录会收到相应的访问权限。

比较所有权模型

基于筛选器的安全性支持所有 Dataverse 所有权类型。

能力 用户或团队拥有 组织所有 筛选后的所有权
支持记录所有者 是的 否 否
支持分配功能 是的 否 否
支持共享 是的 否 否
支持业务部门层次结构访问 是的 否 否
使用基于所有权的权限 是的 否 否
支持组织范围的访问 通过角色特权 是的 通过“所有记录”筛选器权限
支持基于筛选器的安全性 是的 是的 是的
仅使用筛选器来确定访问权限 否 否 是的
支持记录重新分配 是的 否 否
典型用例 帐户、案例、机会和运营业务数据 共享引用和配置数据 基于属性的访问控制、基于权利的访问、地理分段和数据分类

选择所有权模型

当记录具有自然所有者和业务流程需要分配、共享、经理可见性或业务部门层次结构访问权限时,请使用用户或团队记录所有权表。

当用户在整个组织中广泛共享记录并且不需要所有权时,请使用组织记录所有权表。

当业务属性必须确定访问权限而不是所有权时,请使用筛选的记录所有权表。 此模型适用于基于属性的访问控制(ABAC)、基于权利的安全性、法规边界和基于敏感度的授权。

注释

可以将基于筛选器的安全性应用于用户或团队、组织记录所有权以及筛选后的记录所有权表。 只有经过筛选的记录所有权表在访问记录时完全依赖筛选权限。

基于筛选器和筛选后的所有权表的安全性

筛选的记录所有权是一种 Dataverse 所有权模型,它完全通过筛选器特权来确定访问权限。

已筛选的所有权表不使用记录所有者。

筛选的所有权表具有以下特征:

  • 不包含记录所有者信息。
  • 无法分配给用户或团队。
  • 无法与用户或团队共享。
  • 不要使用基于所有权的安全特权。
  • 仅根据筛选器权限确定访问权限。

注释

创建筛选的记录所有权表时,Dataverse 将创建全局 “所有记录 ”筛选器特权,并将其授予系统管理员安全角色。

创建筛选的记录所有权表

创建 Dataverse 表时,选择 筛选 作为所有权类型。 有关说明,请参阅 筛选后的记录所有权。

创建表后:

  1. 创建一个或多个 记录筛选器。
  2. 创建 实体记录筛选器 以将筛选器与表相关联。
  3. 通过安全角色向生成的筛选器授予权限。
  4. 将安全角色分配给用户或团队。

将基于筛选器的安全性应用于用户或团队记录所有权表

还可以将基于筛选器的安全性应用于现有用户或团队记录所有权表。

筛选特权可添加对现有基于所有权的安全模型的访问权限:

  • 用户继续拥有记录。
  • 可以继续分配和共享记录。
  • 业务部门层次结构访问保持不变。
  • 筛选器权限授予额外的行级访问权限。

例如,销售人员可以访问其拥有的销售机会。 筛选器可以授予销售人员访问特定区域中的其他机会的权限。

以下筛选器授予对特定区域中活动帐户的访问权限:

<fetch
  version="1.0"
  output-format="xml-platform"
  mapping="logical"
  distinct="false">
  <entity name="account">
    <attribute name="entityimage_url" />
    <attribute name="statecode" />
    <attribute name="name" />
    <attribute name="address1_city" />
    <attribute name="primarycontactid" />
    <attribute name="telephone1" />
    <attribute name="accountid" />
    <attribute name="new_owningbuname" />
    <order attribute="name" descending="false" />
    <filter type="and">
      <condition
        attribute="territoryid"
        operator="eq"
        value="a440958c-f6bc-f111-aaad-000d3a84e349" />
      <condition
        attribute="statecode"
        operator="eq"
        value="0" />
    </filter>
  </entity>
</fetch>

以下示例使用link-entity授予销售人员访问其代班同事所拥有的有效账户的权限:

<fetch
  version="1.0"
  output-format="xml-platform"
  mapping="logical"
  distinct="true">
  <entity name="account">
    <attribute name="entityimage" />
    <attribute name="statecode" />
    <attribute name="name" />
    <attribute name="parentaccountid" />
    <attribute name="ownerid" />
    <attribute name="telephone1" />
    <attribute name="emailaddress1" />
    <attribute name="accountid" />
    <order attribute="name" descending="false" />
    <filter type="and">
      <condition
        attribute="statecode"
        operator="eq"
        value="0" />
    </filter>
    <link-entity
      name="crcd8_buddyrm"
      alias="buddy"
      link-type="inner"
      from="crcd8_rm"
      to="ownerid">
      <filter type="and">
        <condition
          attribute="crcd8_buddyrmname"
          operator="eq-userid" />
        <condition
          attribute="statecode"
          operator="eq"
          value="0" />
      </filter>
    </link-entity>
  </entity>
</fetch>

有效访问

对于用户或团队记录所有权表,筛选权限可添加对基于所有权的安全性的行级访问权限。 它们不会替换或减少通过所有权、共享或安全角色特权授予的访问权限。

对于筛选的所有权表,筛选器权限确定记录访问权限。 对于组织拥有的记录表,筛选特权会增加安全角色特权所授予的访问权限。

此累加模型允许你在保留现有访问规则的同时引入基于属性的访问。

有关所有权安全性的详细信息,请参阅 “所有权”和对记录的访问权限。

将基于筛选器的安全性应用于组织记录所有权表

还可以将基于筛选器的安全性应用于组织记录所有权表。

组织记录所有权表的标准特权授予对表中所有记录的访问权限。 筛选器权限提供另一种授予对匹配记录的访问权限的方法。 它们不会减少安全角色已授予的更广泛的访问权限。

常见方案包括:

  • 基于区域的访问权限。
  • 基于部门的访问控制。
  • 数据分类控件。
  • 具有范围可见性的共享引用数据。

例如,向用户授予其“区域”列与特定区域匹配的记录的访问权限。 确保其其他安全角色权限不会对同一表授予更广泛的访问权限。

筛选器特权在保留组织记录所有权数据模型的同时添加细化授权。

有关组织记录所有权表的详细信息,请参阅 “所有权”和对记录的访问权限。

筛选权限

通过实体记录筛选器将记录筛选器与表关联时,Dataverse 会创建筛选器权限。 通过安全角色分配这些权限。

筛选器权限支持以下数据访问操作:

  • Create.
  • 读取。
  • 写入。
  • 删除。
  • 追加。
  • 追加到。

每个特权都与特定筛选器和特定表相关联。

以下示例显示了多个城市筛选器的权限:

滤波器 权限
城市 = Redmond Read
城市 = Redmond Write
城市 = Redmond Delete
City = Seattle Read
City = Bellevue Read

创建多个筛选器,并根据需要为每个安全角色分配不同的权限。

在安全角色中授予筛选权限

通过 Dataverse 安全角色管理筛选器权限。

授予筛选访问权限:

  1. 打开安全角色。
  2. 选择目标表。
  3. 选择筛选器权限。
  4. 向角色授予权限。
  5. 将角色分配给用户或团队。

用户可从其分配的安全角色和团队成员资格中获得所有筛选权限。

有关详细信息,请参阅安全角色和特权。

Example

假设 Customer 表包含一个 City 列。

创建三个记录筛选器:

  • City = Redmond。
  • 城市 = 西雅图。
  • 城市 = 贝尔维尤。

使用实体记录筛选器将每个记录筛选器与“客户”表相关联。

创建三个安全角色:

Role 筛选权限
雷德蒙德销售 读取 City = Redmond 的客户记录
西雅图销售 读取 City = Seattle 的客户数据
Bellevue 销售团队 读取 City = Bellevue 的 Customer

每个角色授予对匹配其筛选器的客户记录的访问权限。 用户可以通过其他角色、团队成员身份、所有权或共享获得更广泛的访问权限。

总结

基于筛选器的安全机制根据数据值授予行级访问权限。 使用记录筛选器、实体记录筛选器、筛选器特权和安全角色在 Dataverse 中实现基于属性的访问控制。

通过用户或团队以及组织记录所有权表添加基于筛选器的安全性,并通过筛选条件提供更多的数据访问权限。 选择符合业务需求的所有权模型。 请记住,只有筛选后的所有权表才使用筛选条件作为记录访问的唯一依据。

后续步骤