Прочитать на английском

Поделиться через


Пакет SDK Microsoft Information Protection — основные понятия объектов Profile and Engine

Профили

MipContext Где используется класс для хранения параметров пакета SDK, профиль является корневым классом для всех операций с метками MIP и операций защиты в пакете SDK для MIP. Прежде чем использовать любой из трех наборов API, клиентское приложение должно создать профиль. Будущие операции выполняются профилем или другими объектами , добавленными в профиль. Рекомендуется использовать только один объект профиля для каждого процесса. Создание нескольких из них может привести к неожиданному поведению.

В пакете SDK для MIP существует три типа профилей:

  • PolicyProfile: класс профиля для пакета SDK политики MIP.
  • ProtectionProfile: класс профиля для пакета SDK для защиты MIP.
  • FileProfile: класс профиля для пакета SDK для файлов MIP.

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

Сам профиль предоставляет следующие функции:

  • Определяет, следует ли загружать состояние в памяти или сохраняться на диске, а при сохранении на диске должно быть зашифровано.
  • Определяет mip::ConsentDelegate , что следует использовать для операций согласия.
  • Определяет реализацию mip::FileProfile::Observer , которая будет использоваться для асинхронных обратных вызовов для операций профиля.

Параметры профиля

  • MipContext MipContext: объект, инициализированный для хранения сведений о приложении, пути к состоянию и т. д.
  • CacheStorageType: определяет, как хранить состояние: в памяти, на диске или на диске и зашифрованном.
  • consentDelegate: общий указатель класса mip::ConsentDelegate.
  • observer: общий указатель на реализацию профиля ObserverPolicyProfile, ProtectionProfileи FileProfile).
  • applicationInfo: объект mip::ApplicationInfo. Сведения о приложении, которое использует пакет SDK и соответствует идентификатору регистрации и имени приложения Microsoft Entra.

Двигатели

Подсистемы SDK для файлов, профилей и защиты предоставляют интерфейс для операций, выполняемых под управлением определенной идентичности. Один обработчик добавляется в объект Profile для каждого пользователя или субъекта-службы, который входит в приложение. Можно выполнять делегированные операции с помощью mip::ProtectionSettings и файлового или защитного обработчика. См. раздел настроек защиты в концепциях FileHandler для получения более подробной информации.

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

  • mip::ProtectionEngine
  • mip::PolicyEngine
    • ListSensitivityLabels(): предоставляет список меток для загруженного движка.
    • GetSensitivityLabel(): получает метку из существующего содержимого.
    • ComputeActions(): с указанным идентификатором метки и необязательными метаданными возвращается список действий, которые следует выполнить для конкретного элемента.
  • mip::FileEngine
    • ListSensitivityLabels(): Получить список меток для загруженного движка.
    • CreateFileHandler(): создает mip::FileHandler для определённого файла или потока.

Для создания обработчика требуется передать определенный объект параметров ядра, содержащий параметры для создаваемого типа обработчика. Объект параметров позволяет разработчику указать сведения об идентификаторе движка, реализации, mip::AuthDelegate языковом стандарте и пользовательских параметрах, а также других специфических для API сведениях.

Состояния двигателя

Двигатель может иметь одно из двух состояний:

  • CREATED: Создано указывает, что SDK имеет достаточно сведений о локальном состоянии после вызова необходимых серверных служб.
  • LOADED: пакет SDK создал необходимые структуры данных для работы подсистемы.

Двигатель должен быть создан и загружен для выполнения любых операций. Класс Profile предоставляет несколько методов управления подсистемами: AddEngineAsync, DeleteEngineAsyncи UnloadEngineAsync.

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

Состояние двигателя NONE СОЗДАНО НАГРУЖЕННЫЙ
NONE AddEngineAsync
СОЗДАНО DeleteEngineAsync AddEngineAsync
НАГРУЖЕННЫЙ DeleteEngineAsync ВыгрузкаEngineAsync

Идентификатор двигателя

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

Важно!

Рекомендуется использовать идентификатор движка, уникальный для пользователя, и применять его при каждой операции с SDK. Непредоставление существующего уникального идентификатора для пользователя или службы приведет к дополнительным запросам к сервису. Эти циклы обслуживания могут привести к снижению производительности и регулированию. **

// Create the FileEngineSettings object
FileEngine::Settings engineSettings(mip::Identity(mUsername), // This will be the engine ID. UPN, email address, or other unique user identifiers are recommended. 
													          mAuthDelegate,            // authDelegate implementation 
													          "",                       // ClientData
													          "en-US",                  // Client Locale
                                    false);                   // Load Sensitive Information Types

Методы управления двигателем

Как упоминалось ранее, в пакете SDK есть три метода управления обработчиками: AddEngineAsyncи DeleteEngineAsyncUnloadEngineAsync.

AddEngineAsync

Этот метод загружает существующий модуль или создает его, если он еще не существует в локальном состоянии.

Если приложение не предоставляет id в FileEngineSettings, AddEngineAsync создает новый id объект. Затем проверяет, существует ли движок с таким id в локальном кэше. Если это так, он загружает этот механизм. Если подсистема не существует в локальном кэше, создается новый модуль путем вызова необходимых API и внутренних служб.

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

DeleteEngineAsync

Удаляет двигатель с заданным id. Все следы движка удаляются из локального кэша.

ВыгрузкаEngineAsync

Выгружает структуры данных, загруженные в память для движка с заданным id. Локальное состояние этого движка по-прежнему остается неизменным и может быть перезагружено с помощью AddEngineAsync.

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

Следующие шаги


Дополнительные ресурсы