Основные понятия безопасности в Microsoft Dataverse

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

Безопасность на основе ролей

Dataverse использует безопасность на основе ролей для группирования привилегий. Эти роли безопасности можно связать непосредственно с пользователями или связать их с командами Dataverse и бизнес-подразделениями. Затем пользователи могут быть связаны с командой, поэтому все пользователи, связанные с командой, получают выгоду от роли. Важная концепция безопасности Dataverse, которую необходимо понимать, заключается в том, что все предоставленные привилегии суммируются, при этом действует максимальный уровень доступа. Если вы предоставляете широкий доступ на чтение на уровне организации ко всем записям контактов, вы не можете вернуться и скрыть одну запись.

Бизнес-единицы

Совет

Символ видео Посмотрите следующее видео: Модернизация бизнес-единиц.

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

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

Рассмотрим среду с тремя подразделениями. Woodgrove — это бизнес-единица верхнего уровня и она всегда находится на самом верху. Дочерние бизнес-единицы A и B служат пользователям с различными потребностями доступа. Назначьте каждого пользователя одному из этих подразделений. Бизнес-подразделение пользователя владеет записями, создаваемыми пользователем. Роли безопасности предоставляют доступ к записям в этом подразделении.

Иерархическая структура доступа к данным

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

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

Пользователь A принадлежит отделу А и имеет роль безопасности Y из подразделения A. Эта роль предоставляет пользователю доступ к записям Contact #1 и Contact #2. Пользователь B принадлежит разделу B и не может получить доступ к записям контактов Отдела A, но может получить доступ к записи контакта #3.

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

Структура доступа к данным матрицы (модернизированные бизнес-единицы)

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

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

Пользователь A может принадлежать любому бизнес-подразделению, в том числе корневому бизнес-подразделению. Роль безопасности Y из подразделения A предоставляет пользователю A доступ к записям «Контакт №1» и «Контакт №2». Роль безопасности Y из подразделения B предоставляет пользователю A доступ к записи «Контакт № 3».

Схема, показывающая доступ к записям контактов в бизнес-подразделениях.

Включение структуры доступа к данным матрицы

Заметка

Опубликуйте все настройки перед включением этой функции, чтобы она поддерживала каждую новую таблицу. Если неопубликованные таблицы не работают после включения этой функции, используйте средство OrgDBOrgSettings для Microsoft Dynamics CRM, чтобы установить для RecomputeOwnershipAcrossBusinessUnits значение true. Этот параметр позволяет Dataverse задавать и обновлять поле Владеющая бизнес-единица.

  1. Войдите в центр администрирования Power Platform с правами администратора (администратор Dynamics 365 или администратор Microsoft Power Platform).
  2. В области навигации выберите Управление.
  3. На панели Управление выберите Среды, а затем выберите среду, для которой вы хотите включить эту функцию.
  4. Выберите Параметры>Продукт>Функции.
  5. Включите переключатель Владение записями между бизнес-единицами.
  6. Нажмите Сохранить.

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

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

Заметка

Этот переключатель функции хранится в параметре EnableOwnershipAcrossBusinessUnits и может быть установлен с помощью инструмента OrgDBOrgSettings для Microsoft Dynamics CRM.

Связывание бизнес-подразделения с группой безопасности Microsoft Entra

Вы можете использовать группу безопасности Microsoft Entra для сопоставления вашего бизнес-подразделения с целью упрощения администрирования пользователей и назначения ролей.

Создайте группу безопасности Microsoft Entra для каждого бизнес-подразделения и назначьте соответствующую роль безопасности бизнес-подразделения каждой рабочей группе группы.

Для каждого бизнес-подразделения создайте группу безопасности Microsoft Entra.

Для каждого бизнес-подразделения создайте группу безопасности Microsoft Entra. Создайте команду группы Dataverse для каждой группы безопасности Microsoft Entra. Назначьте соответствующую роль безопасности из бизнес-подразделения каждой команде группы Dataverse. Когда пользователь обращается к среде, Dataverse создает пользователя в корневом бизнес-подразделении. Группы пользователей и групп Dataverse могут оставаться в корневом бизнес-подразделении. Их роли безопасности предоставляют доступ только к данным в соответствующих бизнес-подразделениях.

Добавьте пользователей в соответствующую группу безопасности Microsoft Entra, чтобы предоставить им доступ к бизнес-подразделению. Пользователи могут немедленно запустить приложение и получить доступ к его ресурсам/данным.

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

Владение бизнес-подразделением

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

Заметка

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

Вы можете управлять тем, разрешать ли пользователю задавать значение в столбце «Ответственное подразделение», когда переключатель функции включен. Чтобы задать столбец «Подразделение-владелец», необходимо предоставить роли безопасности пользователя привилегию таблицы Business Unit Добавить к с уровнем доступа «Локальный».

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

  1. Добавьте его в тело формы и заголовки.
  2. Добавьте его в представления.
  3. Добавьте его в сопоставления столбцов. Если вы используете AutoMapEntity, укажите столбец в сопоставлении.

Заметка

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

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

Если задание или процесс копирует данные во внешний ресурс, например в Power BI, включайте Owning Business Unit только в том случае, если этот ресурс поддерживает этот параметр.

Владение таблицей или записью

Dataverse поддерживает два типа владения записями: владельцем организации и пользователем или командой. Вы выбираете тип владения при создании таблицы, и ее нельзя изменить позже. Для записей, принадлежащих организации, каждая привилегия либо разрешает, либо запрещает действие. Для записей, принадлежащих пользователю или команде, большинство привилегий поддерживает следующие уровни доступа: организация, бизнес-единица, бизнес-единица и дочерняя бизнес-единица, а также пользователь. Например, установка привилегии чтения для контактов на уровень "Пользователь" ограничивает доступ пользователей только их собственными записями.

Например, пользователь A принадлежит подразделению A и имеет доступ для чтения контактов на уровне бизнес-подразделения. Пользователь А может видеть контакт № 1 и контакт № 2, но не контакт № 3.

При настройке привилегий роли безопасности необходимо задать уровень доступа для каждой привилегии. На следующем снимке экрана показан редактор привилегий роли безопасности.

Снимок экрана: редактор привилегий роли безопасности для таблиц Dataverse.

Редактор привилегий для роли безопасности отображает стандартные типы привилегий для каждой таблицы: Создание, Чтение, Запись, Удаление, Добавление, Добавление к, Назначение и Предоставление общего доступа. Измените каждую привилегию отдельно. Каждый символ соответствует уровню доступа в ключе.

Снимок экрана: ключ для уровней доступа к роли безопасности.

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

Владение записью в отфильтрованной таблице (предварительная версия)

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

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

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

Заметка

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

Учет права собственности в модернизированных бизнес-единицах

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

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

  1. Установите редактор параметров организации.
  2. Установите для параметра организации RecomputeOwnershipAcrossBusinessUnits значение true. Этот параметр блокирует систему на срок до пяти минут, пока пересчитываются права владения. После пересчёта пользователи могут быть владельцами записей в разных подразделениях компании без отдельных ролей безопасности в каждом подразделении. Владельцы записей также могут назначать свои записи пользователям вне бизнес-единиц, которым принадлежат эти записи.
  3. Установите AlwaysMoveRecordToOwnerBusinessUnit на false. При смене владельца записи остаются в тех бизнес-подразделениях, которым изначально принадлежали.

Для непроизводственных сред установите для AlwaysMoveRecordToOwnerBusinessUnit значение false, чтобы включить владение записями между бизнес-подразделениями.

Заметка

Если вы отключите функцию Record ownership across business units или зададите RecomputeOwnershipAcrossBusinessUnits значение false с помощью OrgDBOrgSettings tool for Microsoft Dynamics CRM, вы не сможете задать или обновить поле "Владеющая бизнес-единица". Система также обновляет поле "Владелец бизнес-единицы " для каждой записи, чтобы она соответствовала бизнес-единице владельца, если значения отличаются.

Команды (включая команды группы)

Teams — это структурные единицы безопасности, принадлежащие бизнес-подразделению. При создании бизнес-подразделения Dataverse автоматически создает свою команду по умолчанию. Dataverse управляет членством команды по умолчанию, которая включает всех пользователей, связанных с этим подразделением. Невозможно вручную добавлять или удалять участников. Членство в Dataverse обновляется, так как пользователи становятся связанными с бизнес-подразделениями или не связаны с ними. Dataverse поддерживает два типа команд: команды владельца и команды доступа.

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

Общий доступ к записям

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

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

Безопасность уровня записи в Dataverse

Несколько факторов определяют доступ пользователя к записи. Dataverse объединяет доступ из ролей безопасности пользователя, бизнес-подразделения, членства в команде и общих записей. Эти разрешения применяются только в базе данных одной среды, и Dataverse отслеживает их отдельно в каждой базе данных. Пользователю также требуется соответствующая лицензия Dataverse.

Безопасность на уровне столбцов в Dataverse

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

Включите безопасность на уровне столбца отдельно для каждого столбца. Затем создайте профиль безопасности столбца для управления доступом. Профиль перечисляет столбцы с включенным уровнем безопасности на уровне столбцов и определяет разрешения на создание, обновление и чтение для каждого столбца. Свяжите профиль с пользователями или командами, чтобы предоставить доступ к защищенным столбцам в записях, к которым они уже могут получить доступ. Безопасность на уровне столбцов не предоставляет доступ на уровне записей. Используйте его только в случае необходимости, так как чрезмерное использование может снизить производительность.

Управление безопасностью в нескольких средах

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

Настройка безопасности пользователей в среде

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

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

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

Безопасность — это сложная тема. Разработчики приложений и команда, которые управляют разрешениями пользователей, должны совместно работать над безопасностью. Координирует крупные изменения перед развертыванием.

См. также