Пакет 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
: общий указатель на реализацию профиляObserver
(вPolicyProfile
,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
и UnloadEngineAsync
DeleteEngineAsync
.
AddEngineAsync
Этот метод загружает существующий модуль или создает его, если он еще не существует в локальном состоянии.
Если приложение не предоставляет вход id
FileEngineSettings
, AddEngineAsync
создает новый id
объект. Затем проверяет, существует ли подсистема id
в локальном кэше хранилища. Если это так, он загружает этот механизм. Если подсистема не существует в локальном кэше, создается новый модуль путем вызова необходимых API и внутренних служб.
В обоих случаях, если метод выполнен успешно, подсистема загружается и готова к использованию.
DeleteEngineAsync
Удаляет модуль с заданным id
. Все трассировки обработчика удаляются из локального кэша.
ВыгрузкаEngineAsync
Выгружает структуры данных в памяти для подсистемы с заданным id
. Локальное состояние этого модуля по-прежнему остается неизменным и может быть перезагружено с AddEngineAsync
помощью .
Этот метод позволяет приложению быть разумным в отношении использования памяти, выгрузив подсистемы, которые, как ожидается, не будут использоваться в ближайшее время.
Next Steps
- Далее узнайте больше о концепциях проверки подлинности и наблюдателях. MIP предоставляет расширяемую модель проверки подлинности, а наблюдатели используются для предоставления уведомлений о событиях для асинхронных событий. Оба являются основными и применяются ко всем пакетам SDK MIP.
- Затем ознакомьтесь с основными понятиями профиля и подсистемы для пакетов SDK для файлов, политик и защиты.