О восстановлении безопасности глобальной адресной книги в Dynamics 365 Finance and Operations

Category: Статьи Post Date: 25.01.2021

Довольно много вопросов, которые я вижу на форумах сообщества Dynamics и у людей, которые обращаются ко мне лично, касается безопасности глобальной адресной книги в Microsoft Dynamics 365 Finance and Operations. К сожалению, это функция, которая еще не была перенесена компанией Microsoft с версии Dynamics AX 2012 на Dynamics 365. В этом посте я отвечу на некоторые вопросы, которые у вас могут возникнуть, и предоставлю способ решения проблемы, чтобы активировать эту функцию сейчас.

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

Первый вопрос, который у вас может возникнуть: “Что такое безопасность глобальной адресной книги?”

Эта функция была введена в Microsoft Dynamics AX для обеспечения безопасности на уровне записей в приложении, относящемся к партнерам как к клиентам, поставщикам, сотрудникам и контактам. Существовали различные варианты маркировки сторон с помощью адресных книг и настройки того, каким командам разрешалось просматривать какие адресные книги. Таким образом, если бы вы были членом одной или нескольких команд, вы бы увидели, например, клиентов, связанных с этой адресной книгой; другие были бы недоступны. Кроме того, существует возможность защиты на уровне юридического лица, что означает, что в форме глобальной адресной книги и поиска имен, например, клиентов, Вы будете видеть только те записи, которые имеют роль во всех компаниях, к которым у Вас есть доступ. Дополнительную информацию об этой функции можно найти в документации Microsoft: О безопасности в глобальной адресной книге.

Microsoft Dynamics 365

В 2016 году Microsoft выпустила облачную версию Microsoft Dynamics 365 без этой функции. С самого начала было заявлено, что эта функция была отложена. Об этом можно прочитать тут: AX 2012 функции, которые были отложены – Finance & Operations. Но почему решили так поступить?

Среда разработки и пользовательский интерфейс в Microsoft Dynamics 365 отделены друг от друга. В рабочей среде у вас нет доступа к инструментам разработки. Включение опций безопасности на форме параметров Глобальной адресной книги изменило уже существующие объекты AOT. Оно включило или выключило использование политик безопасности. Эти политики безопасности были созданы на основе фреймворка eXtensible Data Security (XDS). Теперь есть две причины, по которым подход AX 2012 невозможно реализовать в Microsoft Dynamics 365.

  1. Политики безопасности в среде разработки нельзя расширять. Вы не можете добавлять таблицы или изменять свойства, чтобы включить политику или контролировать включение ограничиваемых таблиц. Перекрытие (overlayering) не разрешено для стандартных моделей Microsoft.
  2. Расширения режима исполнения, такие как конфигурация безопасности или пользовательские поля, не были реализованы.

Несколько раз я обращался в компанию Microsoft, чтобы спросить о временных рамках исправления. Хотя общение было приятным, но на сегодняшний день нет никакой даты, о которой можно было бы объявить. В версии 7.3 клиентам были предоставлены некоторые исправления, основанные на перекрытии. На странице поиска проблем в LCS вы можете найти Сведения о проблеме 3909290 (требуется авторизация). Начиная с версии 8.0, перекрытие было заблокировано и разрешено только развертывание расширений. По этой причине Microsoft больше не поставляет исправления. Чтобы получить приоритет от Microsoft, вы можете проголосовать за идею разработки MicrosoftПовторное включение защиты глобальной адресной книги командой в соответствии с версией AX2012 (требуется вход в систему).

Я замечаю, что спрос на безопасность глобальной адресной книги растет. По этой причине я предложил Microsoft промежуточное решение. В Microsoft упомянули, что это не может быть тем, что они могли бы предоставить как часть стандартного продукта. Однако они поддержат эту задумку, как только я предоставлю решение.

Промежуточное решение

Пока у Microsoft нет решения для переноса безопасности глобальной адресной книги на Microsoft Dynamics 365, для этого потребуется кастомизация. Я сам разработал это решение, и хорошая новость заключается в том, что я могу поделиться ею со всеми вами. Таким образом, Microsoft и ToIncrease — это не те компании, которые бы оказывали поддержку, если что-то непонятно или не работает. Скачать решение можно ниже.

Я провел небольшое тестирование, и оно работает так же, как и на тех таблицах, которые были ограничены в Dynamics AX 2012. Если вы хотите использовать безопасность, необходимо предпринять некоторые действия.

  1. Скачайте zip-файл из раздела скачивания ниже и распакуйте файлы.
  2. Установите программное обеспечение в Вашу среду Dynamics 365 Finance and Operations. Есть два варианта. Вы можете установить файл модели с решением или импортировать файл проекта. Дополнительную помощь можно получить в документации:

Установить модель в среду разработки

Импорт файла .axpp

  1. Включите соответствующие политики безопасности. Когда вы устанавливаете программное обеспечение, по умолчанию политики отключены. Сначала вы должны решить, хотите ли вы использовать безопасность на уровне юридического лица, адресной книги или всё вместе. Если параметры Глобальной адресной книги включили политики, то в данном решении это является задачей в Visual Studio, требующей навыков разработки. Решение должно быть частью вашей среды сборки, как и другие доработки или ISV решения.
  1. Политики безопасности, связанные с этими двумя вариантами, были сгруппированы в проекте. Для каждой группы вам нужно включить все связанные с ними политики, чтобы ограничение работало корректно. 4 политики для Безопасности по адресной книге и 2 для Безопасности по юридическому лицу.

Для каждой политики безопасности откройте дизайнер и установите значение свойства Enabled на Yes.

  1. (Необязательно) Добавьте таблицы и представления или отключите существующие таблицы ограничений. (см. ниже)
  2. Скомпилируйте решение и синхронизируйте БД. Без успешной синхронизации базы данных политики безопасности не будут включены.
  3. Тщательно проверьте программное обеспечение на функциональность и возможное влияние на производительность, прежде чем внедрять его в производственную среду.

Можно вернуть свойство Enabled обратно в значение No, если вы захотите снова отключить ограничение.

Добавление таблиц и представлений или их отключение

Первая версия этой системы безопасности глобальной адресной книги имеет только таблицы ограничений, которые также были установлены в Microsoft Dynamics AX 2012 R3. Я не анализировал, какие таблицы потенциально необходимо включить для поддержки всей стандартной функциональности в Microsoft Dynamics 365 Finance and Operations. Если вы найдете такую таблицу, разработчик сможет определить, какую политику безопасности следует для этого обновить. Вы также можете добавлять свои собственные таблицы в качестве таблицы ограничений. Поскольку все объекты поставляются в открытой модели, вы можете изменить любую часть решения.

Помимо просмотра таблиц, вы также можете ограничить чтение или обновление данных с помощью сущностей (DataEntity). Вы можете прочитать другой мой пост о расширенной безопасности данных и объектах данных – Microsoft Dynamics 365 for Finance and Operations, чтобы узнать, как добавлять объекты данных в виде ограниченной таблицы.

Скачать

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

 

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

1 file(s) 29.96 KB

Скачать

Больше…

Немного больше информации о том, как я разработал решение, если вам интересно…

Для этого решения я скопировал все стандартные политики безопасности, связанные с безопасностью глобальной адресной книги; включая запросы и так называемые таблицы myconstruct (специальные таблицы с префиксом My). Я объясню почему.

  • Политики безопасности скопированы, поскольку на сегодняшний день невозможно расширить политики безопасности в Microsoft Dynamics 365 Finance and Operations.
  • Некоторые таблицы типа myconstruct вызывали таблицу DirPolicyPartition, которая использовалась в Microsoft Dynamics AX 2012 для указания на каждый раздел, была ли активна защита глобальной адресной книги или нет. В AX 2012 все равно провверялось всё, но таблицы myconstruct возвращали, например, все доступные адресные книги или юридические лица. По этой причине она выглядела как отключенная, но на самом деле она может иметь небольшое отрицательное влияние на производительность. В этом проекте я принял решение полностью исключить эту таблицу, так как разделы уже не используются в Microsoft Dynamics 365 Finance and Operations. По этой причине также были скопированы временные таблицы со списком разрешенных значений для каждого пользователя.
  • Так как некоторые myconstruct таблицы были скопированы как новые объекты, то и связанные с ними запросы нужно было заменить. В качестве последующих действий также необходимо было обновить новые скопированные политики безопасности c новыми запросами.
  • При использовании скопированных объектов в новой модели ограничений на настройку политик безопасности под свои нужды нет.

Когда вы сравните текущие стандартные политики безопасности, связанные с безопасностью глобальной адресной книги с AX 2012, вы заметите, что свойства Constrained table, Сonstrained и Use Not Exist Join имеют разные значения. Значения из AX 2012 корректны и реализованы в проекте.

 

Оригинал статьи доступен по ссылке.

Подписывайтесь на канал @d365neti в Telegram

Подписаться

Добавить комментарий