пакет SDK Microsoft Information Protection — основные понятия объектов профиля и ядра

Профили

Класс MipContext хранит параметры, относящиеся к пакету SDK. Профиль — это базовый класс для всех операций, связанных с применением меток MIP и защитой, в MIP SDK. Прежде чем использовать любой из трех наборов 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.

Двигатели

Модули File, Policy и Protection SDK предоставляют интерфейс для операций, выполняемых от имени определенного субъекта. Добавьте один обработчик в объект профиля для каждого пользователя или субъекта-службы, который входит в приложение. Вы можете выполнять делегированные операции с использованием 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. Если вы не предоставляете существующий уникальный идентификатор обработчика для пользователя или службы, пакет 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, DeleteEngineAsyncи UnloadEngineAsync.

AddEngineAsync

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

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

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

DeleteEngineAsync

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

ВыгрузкаEngineAsync

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

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

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