Аудит в пакете SDK для файлов MIP

Единый журнал аудита предоставляет доступ к событиям аудита. Эти события показывают, какие метки пользователи применяют вручную или автоматически в любых приложениях и службах, интегрированных с SDK Microsoft Information Protection (MIP). Партнеры по разработке, использующие пакет SDK, могут позволить этой функции отображать сведения из своих приложений в отчетах клиентов.

Включение аудита

По умолчанию пакет SDK MIP не отправляет события аудита. Аудит должен быть включен в одной или нескольких политиках меток, чтобы события аудита запускались из приложений с поддержкой SDK MIP.

Чтобы отправить данные аудита, включите следующий расширенный параметр.

  • Добавьте следующий параметр политики расширенный параметр с помощью Центра соответствия требованиям безопасности & PowerShell:

    • Ключ: EnableAudit
    • Значение: Истина

    Например, если политика меток называется "Global":

    Set-LabelPolicy -Identity Global -AdvancedSettings @{EnableAudit="True"}
    

    Примечание.

    По умолчанию этот расширенный параметр не присутствует в политике, а журналы аудита не отправляются.

Типы событий

Существует три типа событий, которые можно отправить с помощью пакета SDK в Microsoft Purview. События сердцебиения, события обнаружения и события изменения

События сердцебиения

События пульса создаются автоматически для любого приложения, интегрированного с пакетом SDK для файлов. События Heartbeat отображаются в едином журнале аудита как события AipHeartBeat. События сердцебиения включают:

  • Идентификатор арендатора (TenantId)
  • Время создания
  • Основное имя пользователя
  • Имя компьютера, на котором был создан аудит
  • Имя процесса
  • Платформа
  • Идентификатор приложения — соответствует идентификатору приложения Microsoft Entra.

Эти события полезны при обнаружении приложений в вашей организации, использующих пакет SDK Microsoft Information Protection.

События обнаружения

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

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

В следующем примере создаётся новый объект mip::FileHandler с включённой функцией обнаружения аудита. Метод CreateFileHandler() вызывается на mip::FileEngine, и AuditDiscoveryEnabled установлено в true. Как только FileHandler считывает метку, создается аудит обнаружения.

// Create FileHandler with discovery enabled
auto handlerPromise = std::make_shared<std::promise<std::shared_ptr<FileHandler>>>();
auto handlerFuture = handlerPromise->get_future();
fileEngine->CreateFileHandlerAsync(inputFilePath, actualFilePath, true /*AuditDiscoveryEnabled*/, make_shared<FileHandlerObserver>(), createFileHandlerPromise);
auto handler = handlerFuture.get();

// Read label. This generates the discovery audit.
auto label = handler->GetLabel();

Изменения событий

События изменения предоставляют информацию о файле, ту метку, которая была применена или изменена, и любые обоснования, предоставленные пользователем. События изменения генерируются путём вызова NotifyCommitSuccessful() для mip::FileHandler после успешной фиксации изменения в файле. События изменений могут отображаться в едином аудите как AipSensitivityLabelAction, AipProtectionAction или AipFileDeleted.

// Create labeling options, set label
string contentId = "C:\\users\\myuser\\Documents\\MyPlan.docx";
mip::LabelingOptions labelingOptions(mip::AssignmentMethod::PRIVILEGED);
handler->SetLabel(labelId, labelingOptions, mip::ProtectionSettings());
auto commitPromise = std::make_shared<std::promise<bool>>();
auto commitFuture = commitPromise->get_future();

// CommitAsync() returns a bool. If the change was successful, call NotifyCommitSuccessful().
fileHandler->CommitAsync(outputFile, commitPromise);
if(commitFuture.get()) {

    // Submit audit event.
    handler->NotifyCommitSuccessful(contentId);
}