Volver a publicar (C++)

Información general

Esta información general se centra en volver a publicar en el SDK de MIP es un escenario específico que se produce cuando una aplicación debe permitir que un usuario edite el archivo, pero desea mantener la información de licencia de publicación original sobre el propietario, los derechos, la clave de contenido, etc.

El patrón puede tener un aspecto similar a:

  • Un usuario abre un documento protegido para editarlo.
  • Solo se debe permitir al usuario editar el archivo si se le han concedido los derechos adecuados.
  • El usuario edita y, a continuación, guarda el documento.

El pseudocódigo del SDK de MIP para realizar esta tarea puede tener el siguiente aspecto:

  • Cree un mip::FileHandler archivo que apunta al archivo de destino.
  • Almacene lo mip::ProtectionHandler expuesto por el método mip::FileHandlerGetProtection() 's.
  • Compruebe que el usuario tiene derechos EDIT mediante el método de llamada.
  • Use mip::FileHandler 's GetDecryptedTemporaryFileAsync() o para obtener una GetDecryptedTemporaryStreamAsync() salida descifrada temporalmente.
  • Edite el archivo temporal o transmita contenido y guárdelo.
  • Cree una nueva instancia que apunte al archivo temporal y mip::FileHandler use el SetProtection() método, proporcionando el almacenado como mip::ProtectionHandler parámetro.
  • Confirme el cambio.

Con el archivo original, el propietario, el id. de contenido, la clave de mip::ProtectionHandler contenido, etc. se mantendrán en el documento editado. Este escenario de volver a publicar requiere que la aplicación mantenga una referencia al mip::ProtectionHandler original.

Implementación

Como se ha comentado anteriormente, la clase expone métodos para leer, escribir y quitar etiquetas e información mip::FileHandler de protección. Para obtener la lista completa de las operaciones admitidas, revise la referencia de la API.

En este escenario se usan los siguientes mip::FileHandler métodos:

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

El escenario también usa , que expone las funciones para cifrar y descifrar transmisiones y búferes protegidos, realizar comprobaciones de acceso, obtener la licencia de publicación y obtener atributos de la información mip::ProtectionHandler protegida. El AccessCheck() método se usará para validar que el usuario tiene derechos para editar el archivo.

Para completar correctamente este escenario de reprotección, revise los inicios rápidos en "Pasos siguientes" y asegúrese de que la aplicación se compila y puede enumerar correctamente etiquetas.

Crear un controlador de protección a partir del archivo y descifrar el archivo

mip::ProtectionHandler expone las funciones para cifrar y descifrar transmisiones y búferes protegidos, realizar comprobaciones de acceso, obtener la licencia de publicación y obtener atributos de la información protegida. mip::ProtectionHandler los objetos se crean proporcionando una licencia de publicación serializada o protectiondescriptor. En este caso de uso, estaríamos usando implícitamente la licencia de publicación como licencia de publicación cuando se usa al descifrar contenido ya protegido o al proteger el contenido donde la licencia ya se ha construido.

mip::FileHandler expone un método con GetProtection() nombre que se recupera del archivo asociado con el archivo mip::ProtectionHandlermip::FileHandler . Una vez recuperado el objeto, se puede usar la misma opción para validar los niveles de acceso del usuario para el archivo, descifrar el archivo y posteriormente cifrar el archivo una vez mip::ProtectionHandler editado.

mip::ProtectionHandler's se usa para validar que el usuario tiene un derecho específico al archivo y devuelve una respuesta AccessCheck() booleana, según el resultado. Por ejemplo, para comprobar que el usuario tiene derechos de edición, llame al método que pasa por el valor "EDITAR". Si el resultado es verdadero,permita que el usuario edite el archivo. Una vez comprobado el derecho EDITAR, use 's para recuperar el archivo GetDecryptedTemporaryFileAsync() descifrado temporalmente.

Para obtener más información sobre varios derechos de usuario, consulte Derechos de usuario para Azure Information Protection.

Importante

Las comprobaciones de acceso y la aplicación son exclusivamente del desarrollador de aplicaciones. Un usuario con derechos de VISTA es capaz de descifrar la información protegida. La aplicación debe validar el conjunto de derechos concedidos al usuario y exigir dichos derechos a través de controles de protección de la información, como impedir la copia, la edición o la realización de capturas de pantalla. Si no se implementan correctamente los controles de protección, es posible que se pueda exponer información confidencial.

Guardar y publicar el archivo editado aplicando Protección

Después de descifrar el archivo, el archivo se puede editar. Una vez completada la operación de edición, los cambios se pueden realizar. Cree un IFileHandler objeto con el archivo temporal anterior para controlar el archivo confirmado. A continuación, el archivo temporal se puede proteger con IProtectionHandler el objeto recuperado del archivo original.

Pasos siguientes