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.
El cumplimiento de los derechos de administración de derechos de información definidos en el portal de cumplimiento es responsabilidad del desarrollador de aplicaciones. El SDK proporciona una API y un conjunto de enumeradores para simplificar estas comprobaciones de acceso.
Los ejemplos y tablas siguientes mostrarán qué escenarios requieren una comprobación de acceso, la lista de derechos con los que comprobar y cómo realizar la comprobación.
Lista de derechos y resultados
Para obtener una lista completa de los derechos de uso y las descripciones, consulte Configurar los derechos de uso de Microsoft Purview Information Protection. En este artículo se definen las responsabilidades de un desarrollador de aplicaciones en las funciones de cumplimiento de derechos y habilitadas cuando están presentes o no derechos específicos.
Importante
Es responsabilidad de los desarrolladores de aplicaciones comprobar y aplicar derechos. Si no se realizan comprobaciones, es posible que se pierdan datos.
Escenarios
El lugar y el método que utilice la aplicación para realizar las comprobaciones de acceso dependerán del tipo de aplicación que esté compilando. Las aplicaciones que controlan la salida de archivo completo y que no tienen ninguna interfaz de usuario usarán los EXTRACT derechos o OWNER con más frecuencia. Las aplicaciones con una interfaz de usuario requerirán controles más granulares, lo que bloqueará el acceso a los controles de usuario y las rutas de acceso de exportación en la aplicación. Consulte la sección realización de comprobaciones de acceso para ver ejemplos de código.
Aplicaciones sin una interfaz de usuario
Las aplicaciones sin una interfaz de usuario suelen ser interfaces de línea de comandos o basadas en servicios (CLI). Cuando la aplicación controla los archivos protegidos por Purview Information Protection, debe asegurarse de que un usuario sin los derechos correctos no puede usar el servicio o la CLI para exportar el archivo en un formato desprotegido.
Estas aplicaciones deben validar que los derechos OWNER o EXTRACT están presentes. Los usuarios con OWNER pueden realizar cualquier operación. Los usuarios con EXTRACT pueden quitar directamente la protección o guardar en un nuevo formato, incluso si ese formato no admite la protección.
Aplicaciones con una interfaz de usuario
Las aplicaciones del SDK de archivos con una interfaz de usuario deben implementar controles que restrinjan el acceso a las operaciones que el usuario no puede realizar. Un ejemplo de esta aplicación es el Visor de Information Protection de Microsoft Purview. El visor descifra temporalmente el archivo y representa el contenido en la ventana de la aplicación. Realiza comprobaciones de acceso pormenorizadas antes de mostrar el documento y deshabilita los elementos de la interfaz de usuario en función de los resultados de las comprobaciones de acceso.
Un flujo de trabajo parcial de realizar comprobaciones de acceso podría tener el siguiente aspecto:
- ¿El usuario tiene el derecho OWNER? Si es así, habilite todos los controles y detenga el procesamiento de otros derechos.
- ¿El usuario tiene el derecho a PRINT? Si es así, habilite el control de impresión. Si no es así, deshabilite el control de impresión.
- ¿El usuario tiene el derecho EXPORT ? Si es así, habilite los controles de exportación y los elementos de la interfaz de usuario. Si no es así, deshabilite estos elementos.
- ¿El usuario tiene el derecho EXTRACT? Si es así, habilite la copia y las capturas de pantalla. Si no es así, deshabilite estas funciones.
- ¿El usuario tiene el derecho EDITAR ? Si es así, habilite la edición y guarde el elemento actual. Si no es así, haga que el elemento sea de solo lectura.
Estas comprobaciones deben realizarse para todos los permisos de la tabla de lista de derechos y resultados, excepto en el caso del derecho VIEW. El archivo no será accesible sin este derecho.
Realización de comprobaciones de acceso
Los patrones para realizar la comprobación de acceso son similares en el SDK de archivos y protección para C++, .NET y Java.
En estos ejemplos de código se supone que ha realizado los pasos necesarios para inicializar el SDK y ha creado instancias de un motor y un controlador.
- Inicio rápido: Inicialización de aplicaciones cliente (C++)
- Inicio rápido: Inicialización de aplicaciones cliente (C#)
- Inicio rápido: Inicialización de aplicaciones cliente para SDK de protección (C++)
- Inicio rápido: Inicialización de aplicaciones cliente para SDK de protección (C#)
Realización de comprobaciones de acceso en el SDK de archivos con .NET
Este código supone que se ha creado un FileHandler y apunta a un archivo válido.
// Validate that the file referred to by the FileHandler is protected.
if(handler.Protection != null)
{
// Validate that user has rights to remove protection from the file.
if(handler.Protection.AccessCheck(Rights.Extract))
{
// If user has Extract right, remove protection and commit the change. Otherwise, throw exception.
handler.RemoveProtection();
bool result = handler.CommitAsync(outputPath).GetAwaiter().GetResult();
return result;
}
else
{
throw new Microsoft.InformationProtection.Exceptions.AccessDeniedException("User lacks EXPORT right.");
}
}
Realización de comprobaciones de acceso en el SDK de protección con .NET
Este fragmento de código supone que se ha creado un ProtectionHandler para su consumo.
// Validate that the file referred to by the FileHandler is protected.
if(protectionHandler != null)
{
// Validate that user has rights to remove protection from the file.
if(protectionHandler.AccessCheck(Rights.Print))
{
// If the user has the print right, enable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(true);
}
else
{
// If the user does not have the print right, disable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(false);
}
}
Realización de comprobaciones de acceso en el SDK de archivos con C++
Este código supone que se ha creado un FileHandler y apunta a un archivo válido.
// Validate that the file referred to by the FileHandler is protected.
if (fileHandler->GetProtection() != nullptr)
{
if (fileHandler->GetProtection()->AccessCheck(mip::rights::Extract()))
{
auto commitPromise = std::make_shared<std::promise<bool>>();
auto commitFuture = commitPromise->get_future();
fileHandler->RemoveProtection();
fileHandler->CommitAsync(outputFile, commitPromise);
result = commitFuture.get();
}
else
{
throw std::runtime_error("User doesn't have EXTRACT right.");
}
}
Realización de comprobaciones de acceso en el SDK de protección con C++
Este fragmento de código supone que se ha creado un ProtectionHandler para su consumo.
// Validate that the file referred to by the FileHandler is protected.
if (protectionHandler != nullptr)
{
if (protectionHandler->AccessCheck(mip::rights::Print()))
{
// If the user has the print right, enable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(true);
}
else
{
// If the user does not have the print right, disable the control.
// SetPrintControlEnabled() is an example and not a MIP SDK function.
SetPrintControlEnabled(false);
}
}
Pasos siguientes
Ahora que tiene una idea de cómo realizar correctamente las comprobaciones de acceso y aplicar los derechos asociados a esas comprobaciones, continúe con los conceptos del controlador de archivos para obtener más información sobre cómo quitar la protección de los archivos.