Повторная публикация (C++)
Обзор
В этом обзоре основное внимание уделяется повторной публикации в пакете SDK MIP— это конкретный сценарий, когда приложение должно разрешить пользователю изменять файл, но хочет сохранить исходные сведения о лицензии публикации о владельцах, правах, ключе содержимого и т. д.
Шаблон может выглядеть примерно так:
- Пользователь открывает защищенный документ для редактирования.
- Пользователь должен быть разрешен только для редактирования файла, если они были предоставлены соответствующие права.
- Пользователь изменяет и сохраняет документ.
Псевдокод пакета SDK MIP для выполнения этой задачи может выглядеть следующим образом:
- Создайте объект, указывающий
mip::FileHandler
на целевой файл. - Сохраните предоставленные
mip::ProtectionHandler
методомmip::FileHandler
GetProtection()
. - Убедитесь, что у пользователя есть права EDIT , вызывая
AccessCheck()
метод. - Используйте
mip::FileHandler
"sGetDecryptedTemporaryFileAsync()
" или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::FileHandler
s GetDecryptedTemporaryFileAsync()
для получения временного расшифрованного файла.
Дополнительные сведения о различных правах пользователя см. в разделе "Права пользователей" для Azure Information Protection.
Внимание
Проверки доступа и принудительное применение предназначены исключительно для разработчика приложения. Пользователь с правами VIEW может расшифровывать защищенные сведения. Это касается приложения, чтобы проверить набор прав, предоставленных пользователю, и применить эти права с помощью элементов управления защиты информации, таких как предотвращение копирования, редактирования или создания снимка экрана. Неспособность правильно реализовать средства управления защитой может привести к воздействию конфиденциальной информации.
Сохранение и публикация измененного файла путем применения защиты
После расшифровки файла можно изменить. После завершения операции редактирования изменения можно зафиксировать.
IFileHandler
Создайте объект с помощью временного файла выше для обработки зафиксированного файла. Затем временный файл можно защитить с помощью IProtectionHandler
объекта, полученного из исходного файла.