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


Повторная публикация (C++)

Обзор

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

Шаблон может выглядеть примерно так:

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

Псевдокод пакета SDK MIP для выполнения этой задачи может выглядеть следующим образом:

  • Создайте объект, указывающий mip::FileHandler на целевой файл.
  • Сохраните предоставленные mip::ProtectionHandler методомmip::FileHandlerGetProtection().
  • Убедитесь, что у пользователя есть права EDIT , вызывая AccessCheck() метод.
  • Используйте mip::FileHandler"s GetDecryptedTemporaryFileAsync() " или GetDecryptedTemporaryStreamAsync() для получения временных расшифрованных выходных данных.
  • Измените временный файл или содержимое потока и сохраните его.
  • Создайте новый mip::FileHandler экземпляр, указывающий на временный файл и используйте SetProtection() метод, предоставляя сохраненный mip::ProtectionHandler в качестве параметра.
  • Зафиксируйте изменения.

mip::ProtectionHandler Использование исходного файла, владельца, идентификатора содержимого, ключа содержимого и т. д. будет храниться в редактируемом документе. Этот сценарий повторной публикации требует, чтобы приложение поддерживало ссылку на исходный mip::ProtectionHandler.

Внедрение

Как упоминалось ранее, mip::FileHandler класс предоставляет методы чтения, записи и удаления меток и сведений о защите. Полный список поддерживаемых операций см. в справочнике по mip::FileHandler.

В этом сценарии используются следующие методы mip::FileHandler:

  • GetProtection()
  • CommitAsync()
  • GetDecryptedTemporaryFileAsync()
  • SetProtection()

В сценарии также используются mip::ProtectionHandlerфункции для шифрования и расшифровки защищенных потоков и буферов, выполнения проверок доступа, получения лицензии на публикацию и получения атрибутов из защищенной информации. Метод AccessCheck() будет использоваться для проверки того, что у пользователя есть права на изменение файла.

Чтобы успешно завершить этот сценарий повторной защиты, ознакомьтесь с кратким руководством в разделе "Дальнейшие действия" и убедитесь, что приложение создает и может успешно перечислять метки.

Создание обработчика защиты из файла и расшифровка файла

mip::ProtectionHandler предоставляет функции для шифрования и расшифровки защищенных потоков и буферов, выполнения проверок доступа, получения лицензии на публикацию и получения атрибутов из защищенной информации. mip::ProtectionHandler объекты создаются путем предоставления лицензии protectionDescriptor или сериализованной публикации. В этом случае мы будем неявно использовать лицензию публикации в качестве лицензии на публикацию, которая используется при расшифровке уже защищенного содержимого или при защите содержимого, в котором уже создана лицензия.

mip::FileHandler предоставляет метод с именем GetProtection() , который извлекается mip::ProtectionHandler из файла, связанного с ним mip::FileHandler. mip::ProtectionHandler После получения объекта можно использовать для проверки уровней доступа пользователя для файла, расшифровки файла и последующего шифрования файла после его редактирования.

mip::ProtectionHandler AccessCheck() Используется для проверки того, что пользователь имеет определенное право на файл и возвращает логический ответ в зависимости от результата. Например, чтобы убедиться, что у пользователя есть права на изменение, вызовите метод, передавающий значение EDIT. Если результат имеет значение true, разрешить пользователю изменять файл. После проверки правки EDIT используйте mip::FileHandlers GetDecryptedTemporaryFileAsync() для получения временного расшифрованного файла.

Дополнительные сведения о различных правах пользователя см. в разделе "Права пользователей" для Azure Information Protection.

Внимание

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

Сохранение и публикация измененного файла путем применения защиты

После расшифровки файла можно изменить. После завершения операции редактирования изменения можно зафиксировать. IFileHandler Создайте объект с помощью временного файла выше для обработки зафиксированного файла. Затем временный файл можно защитить с помощью IProtectionHandler объекта, полученного из исходного файла.

Next Steps