Безопасность на основе фильтров в Microsoft Dataverse (предварительная версия)

[Эта статья является предварительной документацией и может быть изменена.]

Безопасность на основе прав владения предоставляет доступ через право владения записями, команды, бизнес-подразделения и привилегии уровня организации. Безопасность на основе фильтров предоставляет доступ к данным записей, соответствующих критериям фильтрации. Например, вы можете предоставить доступ к записям, в столбце City которых указаны Редмонд, Сиэтл или Белвью.

Безопасность на основе фильтров можно использовать с помощью:

  • Отфильтрованные таблицы владения записями.
  • Таблицы принадлежности записей пользователям или командам.
  • Таблицы владения организацией.

Important

  • Эта функция находится в режиме предварительного просмотра.
  • Предварительные версии функций не предназначены для использования в рабочей среде и могут иметь ограниченные функциональные возможности. Эти функции доступны до официального выпуска, чтобы клиенты могли получать ранний доступ и предоставлять отзывы.

Общие сведения о том, как работает безопасность на основе фильтров

Настройте безопасность на основе фильтров с двумя основными компонентами:

  • Фильтр записей: Использует FetchXML для идентификации записей, которые соответствуют доступу.
  • Фильтр записей сущностей: Связывает фильтр записей с таблицей Dataverse.

При связывании фильтра с таблицей Dataverse создает привилегии фильтра. Назначьте эти привилегии с помощью ролей безопасности. Когда пользователь обращается к данным, Dataverse оценивает фильтры из ролей безопасности пользователя и членства в группах. Фильтр сопоставления предоставляет соответствующую операцию доступа к данным.

В отфильтрованных таблицах владения записями привилегии фильтра определяют доступ к записям. Для таблиц с владением записями пользователем, командой или организацией привилегии фильтрации дополняют доступ, предоставляемый в рамках существующей модели безопасности.

Компоненты безопасности на основе фильтров

Component Описание
Фильтр записей Сохраняет определение фильтра FetchXML.
Фильтр записей сущностей Связывает фильтр записей с таблицей Dataverse.
Фильтрация привилегий Предоставляет отфильтрованный доступ для определенной операции доступа к данным.
Роль безопасности Назначает пользователям и командам права фильтрации.

Dataverse объединяет все разрешённые фильтры из ролей безопасности пользователя и членства в командах. Запись, соответствующая любому авторизованному фильтру, получает соответствующий доступ.

Сравнение моделей владения

Безопасность на основе фильтров поддерживает все типы владения Dataverse.

Функциональность Принадлежит пользователю или команде Принадлежащая организации Отфильтрованное владение
Поддерживает владельца записи Да No No
Поддерживает присваивание Да No No
Поддерживает общий доступ Да No No
Поддерживает доступ к иерархии бизнес-единиц Да No No
Использование привилегий на основе владения Да No No
Поддержка доступа на уровне организации С помощью привилегий ролей Да Через привилегию фильтра "Все записи"
Поддерживает безопасность на основе фильтров Да Да Да
Использует только фильтры для определения доступа No No Да
Поддерживает переназначение записей Да No No
Типичные варианты использования Учетные записи, обращения, сделки и операционные бизнес-данные Общие справочные данные и данные конфигурации Управление доступом на основе атрибутов, доступ на основе прав, географическое сегментирование и классификация данных

Выбор модели владения

Используйте таблицы, принадлежащие пользователю или команде, если у записей есть естественный владелец и бизнес-процессы требуют назначения, предоставления общего доступа, видимости для руководителя или доступа через иерархию бизнес-единиц.

Используйте таблицы с владением записями на уровне организации, если пользователи широко совместно используют записи по всей организации и им не требуется владение записями.

Используйте отфильтрованные таблицы владения записями, когда бизнес-атрибуты должны определять доступ вместо владения. Эта модель хорошо подходит для управления доступом на основе атрибутов (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.
  • Прочитать.
  • Напишите.
  • Удалить.
  • Добавление.
  • Добавление в.

Каждая привилегия связана с определенным фильтром и определенной таблицей.

В следующем примере показаны привилегии для нескольких фильтров города:

Filter Привилегия
Город = Редмонд Читайте
Город = Редмонд Напишите
Город = Редмонд Delete
Город = Сиэтл Читайте
City = Bellevue Читайте

Создайте несколько фильтров и при необходимости назначьте разные привилегии каждой роли безопасности.

Предоставить права на использование фильтра в ролях безопасности

Управление привилегиями фильтра с помощью ролей безопасности Dataverse.

Чтобы предоставить фильтрованный доступ, выполните приведенные действия.

  1. Откройте роль безопасности.
  2. Выберите целевую таблицу.
  3. Выберите привилегию фильтра.
  4. Предоставьте привилегию роли.
  5. Назначьте роль пользователям или командам.

Пользователи получают все права доступа к фильтрам на основе назначенных им ролей безопасности и членства в командах.

Дополнительные сведения см. в разделе " Роли безопасности" и "Привилегии".

Example

Предположим, что таблица Customer содержит столбец "Город".

Создайте три фильтра записей:

  • Город = Редмонд.
  • Город = Сиэтл.
  • Город = Bellevue.

Свяжите каждый фильтр записей с таблицей клиента с помощью фильтров записей сущностей.

Создайте три роли безопасности:

Роль Фильтрация привилегий
Продажи в Редмонде Получить клиента, где Город = Редмонд
Продажи в Сиэтле Прочитать клиентов, где город = "Сиэтл"
Bellevue Sales Прочитать Customer, где City = Bellevue

Каждая роль предоставляет доступ к записям клиентов, соответствующим фильтру. Пользователи могут иметь более широкий доступ через другие роли, членство в команде, владение или общий доступ.

Сводка

Безопасность на основе фильтров предоставляет доступ на уровне строк на основе значений данных. Используйте фильтры записей, фильтры записей сущностей, права фильтрации и роли безопасности для реализации управления доступом на основе атрибутов в Dataverse.

Добавьте безопасность на основе фильтра с таблицами владения записями пользователя, команды или организации, чтобы предоставить более широкий доступ к данным с использованием условий фильтрации. Выберите модель владения, которая соответствует вашим бизнес-требованиям. Помните, что только отфильтрованные таблицы владения используют фильтры в качестве эксклюзивного источника доступа к записи.

Дальнейшие действия