Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A imposição dos direitos de gerenciamento de direitos de informação definidos no portal de conformidade é responsabilidade do desenvolvedor de aplicativos. O SDK fornece uma API e um conjunto de enumeradores para simplificar essas verificações de acesso.
Os exemplos e tabelas abaixo demonstrarão quais cenários exigem uma verificação de acesso, a lista de direitos a serem verificados e como executar a verificação.
Lista de direitos e resultados
Para obter uma lista completa dos direitos de uso e descrições, consulte Configurar direitos de uso para a Proteção de Informações do Microsoft Purview. Este artigo define as responsabilidades de um desenvolvedor de aplicativos na imposição de direitos e funções habilitadas quando direitos específicos estão ou não presentes.
Importante
É responsabilidade dos desenvolvedores de aplicativos verificar e impor direitos. A falha na execução de verificações pode resultar em perda de dados.
Cenários
Onde e como seu aplicativo executa verificações de acesso dependerão do tipo de aplicativo que você está criando. Os aplicativos que lidam com saída de arquivo completa e não possuem interface de usuário usarão com mais frequência os direitos EXTRACT ou OWNER. Aplicativos com uma interface do usuário exigirão controle granular, bloqueando o acesso aos controles do usuário e aos caminhos de exportação dentro do aplicativo. Consulte a seção executando verificações de acesso para obter exemplos de código.
Aplicativos sem uma interface do usuário
Aplicativos sem uma interface do usuário geralmente são CLI (interfaces de linha de comando ou baseadas em serviço). Quando seu aplicativo está tratando arquivos protegidos pela Proteção de Informações do Purview, ele deve garantir que um usuário sem os direitos corretos não possa usar o serviço ou a CLI para exportar o arquivo em um formato desprotegido.
Esses aplicativos devem validar se os direitos OWNER ou EXTRACT estão presentes. Os usuários com OWNER podem executar qualquer operação. Os usuários com EXTRACT podem remover diretamente a proteção ou salvar em um novo formato, mesmo que esse formato não dê suporte à proteção.
Aplicativos com uma interface do usuário
Aplicativos SDK de arquivos com uma interface do usuário devem implementar controles que restringem o acesso a operações que o usuário não tem permissão para executar. Um exemplo desse aplicativo é o Visualizador de Proteção de Informações do Microsoft Purview. O visualizador descriptografa temporariamente o arquivo e renderiza o conteúdo na janela do aplicativo. Ele executa verificações de acesso granulares antes de exibir o documento e desabilita elementos de interface do usuário com base nos resultados das verificações de acesso.
Um fluxo de trabalho parcial da execução de verificações de acesso pode ser semelhante a:
- O usuário tem o direito de PROPRIETÁRIO? Em caso afirmativo, habilite todos os controles e pare de processar outros direitos.
- O usuário tem o direito de IMPRIMIR? Se sim, habilite o controle de impressão. Caso contrário, desabilite o controle de impressão.
- O usuário tem o direito EXPORT ? Se sim, habilite controles de exportação e elementos de interface do usuário. Caso contrário, desabilite esses elementos.
- O usuário tem o direito de EXTRAÇÃO? Em caso afirmativo, habilite a cópia e as capturas de tela. Caso contrário, desabilite essas funções.
- O usuário tem o direito de EDITAR? Em caso afirmativo, habilite a edição e o salvamento do item atual. Caso contrário, torne o item somente leitura.
Essas verificações devem ser executadas para todas as permissões na lista de direitos e na tabela de resultados , exceto pelo direito VIEW . O arquivo não será acessível sem esse direito.
Executando verificações de acesso
Os padrões para executar a verificação de acesso são semelhantes no SDK de Arquivo e Proteção para C++, .NET e Java.
Esses exemplos de código pressupõem que você passou pelas etapas para inicializar o SDK e instanciou um mecanismo e um manipulador.
- Início Rápido: Inicialização do aplicativo cliente (C++)
- Início Rápido: Inicialização do aplicativo cliente (C#)
- Início Rápido: Inicialização do aplicativo cliente para SDKs de Proteção (C++)
- Início Rápido: Inicialização do aplicativo cliente para SDKs de Proteção (C#)
Executando verificações de acesso no SDK de Arquivos com .NET
Esse snip de código pressupõe que um FileHandler foi criado e aponta para um arquivo 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.");
}
}
Executando verificações de acesso no SDK de proteção com .NET
Esse snip de código pressupõe que um ProtectionHandler foi criado para 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);
}
}
Executando verificações de acesso no SDK de Arquivo com C++
Esse snip de código pressupõe que um FileHandler foi criado e aponta para um arquivo 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.");
}
}
Executando verificações de acesso no SDK de proteção com C++
Esse snip de código pressupõe que um ProtectionHandler foi criado para 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);
}
}
Próximas etapas
Agora que você tem uma ideia de como executar corretamente as verificações de acesso e impor os direitos associados a essas verificações, continue com os conceitos do manipulador de arquivos para saber mais sobre como remover a proteção dos arquivos.