Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esta introducción se centra en volver a publicar en el SDK de MIP. La nueva publicación es necesaria cuando una aplicación necesita permitir que un usuario edite el archivo, pero debe 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 al siguiente:
- Un usuario abre un documento protegido para su edición.
- El usuario solo debe poder editar el archivo si tiene 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::FileHandlerque apunte al archivo de destino. - Almacene el objeto
mip::ProtectionHandlerexpuesto por el métodomip::FileHandlerdeGetProtection(). - Compruebe que el usuario tiene los derechos EDIT llamando al método
AccessCheck(). - Use
mip::FileHandleroGetDecryptedTemporaryFileAsync()deGetDecryptedTemporaryStreamAsync()para obtener una salida descifrada temporal. - Edite el archivo temporal o el contenido de la secuencia y guarde.
- Cree una nueva instancia de
mip::FileHandlerque apunte al archivo temporal y use el métodoSetProtection(), proporcionando elmip::ProtectionHandleralmacenado a modo de parámetro. - Confirme el cambio.
mip::ProtectionHandler El uso del archivo original, el propietario, el identificador de contenido y la clave de contenido se mantienen en el documento editado. Este escenario de republicación requiere que la aplicación mantenga una referencia al mip::ProtectionHandler original.
Implementación
Como ya hemos explicado, la clase mip::FileHandler expone métodos para leer, escribir y quitar tanto etiquetas como información de protección. Para obtener la lista completa de operaciones admitidas, revise la referencia de mip::FileHandler.
En este escenario se usan los métodos siguientes de mip::FileHandler:
GetProtection()CommitAsync()GetDecryptedTemporaryFileAsync()SetProtection()
En este escenario también se usa el elemento mip::ProtectionHandler, que expone las funciones para cifrar y descifrar secuencias y búferes protegidos, realizar comprobaciones de acceso, obtener la licencia de publicación y obtener atributos de la información protegida. Se usará el método AccessCheck() para validar si 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 compile y pueda enumerar correctamente las etiquetas.
Creación de un controlador de protección desde el archivo y descifrado del archivo
El elemento mip::ProtectionHandler expone las funciones para cifrar y descifrar secuencias y búferes protegidos, realizar comprobaciones de acceso, obtener la licencia de publicación y obtener atributos de la información protegida. Los objetos mip::ProtectionHandler se construyen proporcionando un ProtectionDescriptor o una licencia de publicación en serie. En este caso de uso, la licencia de publicación se usa al descifrar contenido ya protegido o al proteger el contenido en el que ya se ha construido la licencia.
mip::FileHandler expone un método denominado GetProtection() que recupera mip::ProtectionHandler del archivo asociado a mip::FileHandler. Una vez recuperado el objeto mip::ProtectionHandler, se puede usar para validar los niveles de acceso del usuario para el archivo, descifrar el archivo y luego cifrar el archivo una vez que se edite.
El elemento mip::ProtectionHandler de AccessCheck() se usa para validar que el usuario tiene un derecho específico con respecto al archivo y devuelve una respuesta booleana, según el resultado. Por ejemplo, para comprobar que el usuario tiene derechos de edición, debe llamar al método enviando el valor "EDIT". Si el resultado es true, se permite al usuario editar el archivo. Una vez comprobado el derecho EDIT, use mip::FileHandler de GetDecryptedTemporaryFileAsync() para recuperar el archivo descifrado temporal.
Para obtener más información, consulte Restringir el acceso al contenido mediante etiquetas de confidencialidad para aplicar el cifrado.
Importante
Las comprobaciones y el cumplimiento de acceso son exclusivamente para el desarrollador de aplicaciones. Un usuario con derechos VIEW es capaz de descifrar la información protegida. Es necesario que la aplicación valide el conjunto de derechos concedidos al usuario y aplique esos derechos a través de controles de protección de la información, como impedir la copia, edición o tomar capturas de pantalla. Si no se implementan correctamente los controles de protección, se puede producir una exposición de información confidencial.
Guardar y publicar el archivo editado aplicando protección
El archivo se puede editar después de descifrar el archivo. Una vez completada la operación de edición, se pueden confirmar los cambios. Cree un IFileHandler objeto mediante el archivo temporal para controlar el archivo confirmado. Después, el archivo temporal se puede proteger mediante el objeto IProtectionHandler recuperado a partir del archivo original.