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.
Este artigo descreve como usar APIs do SDK do MIP para identificar o tipo de proteção configurado em um rótulo para que seu aplicativo possa tomar decisões de comportamento e interface do usuário antes de aplicar a proteção. Ele também resume as APIs de chave e o comportamento esperado para cada tipo de proteção.
Visão geral
A partir do SDK do MIP 1.18, a Label classe expõe métodos para determinar que tipo de proteção um rótulo se aplica. Anteriormente, os aplicativos só podiam verificar HasRightsManagementPolicy() se um rótulo aplicava qualquer proteção. Os novos métodos permitem que os aplicativos diferenciem entre os seguintes tipos de proteção:
- Não Encaminhar Proteção que impede que o destinatário encaminhe, imprima ou copie o conteúdo.
- Apenas Criptografia Proteção que criptografa o conteúdo mas não restringe as ações do destinatário além da descriptografia.
- Ad-hoc Proteção em que o usuário define permissões personalizadas (direitos definidos pelo usuário) no momento do aplicativo.
Esses métodos permitem que os aplicativos tome decisões mais inteligentes sobre como lidar com rótulos. Por exemplo, um aplicativo de email pode apresentar diferentes opções de interface do usuário, dependendo se um rótulo aplica a proteção Não Encaminhar versus Criptografar Somente.
Consultando tipos de proteção de rótulo
C++
A mip::Label classe fornece os seguintes métodos:
// Returns true if the label applies any protection.
bool HasRightsManagementPolicy() const;
// Returns true if the label applies Do Not Forward protection.
bool HasDoNotForwardProtection() const;
// Returns true if the label applies Encrypt Only protection.
bool HasEncryptOnlyProtection() const;
// Returns true if the label applies ad-hoc (user-defined) protection.
bool HasAdhocProtection() const;
Exemplo: Inspecionando tipos de proteção de rótulo
for (const auto& label : engine->ListSensitivityLabels()) {
std::cout << "Label: " << label->GetName() << std::endl;
if (label->HasRightsManagementPolicy()) {
if (label->HasDoNotForwardProtection()) {
std::cout << " Protection type: Do Not Forward" << std::endl;
} else if (label->HasEncryptOnlyProtection()) {
std::cout << " Protection type: Encrypt Only" << std::endl;
} else if (label->HasAdhocProtection()) {
std::cout << " Protection type: Ad-hoc (user-defined permissions)" << std::endl;
} else {
std::cout << " Protection type: Template-based" << std::endl;
}
} else {
std::cout << " No protection" << std::endl;
}
}
C# (.NET)
No wrapper do .NET, a Label classe expõe as propriedades correspondentes:
label.HasRightsManagementPolicy // bool
label.HasDoNotForwardProtection // bool
label.HasEncryptOnlyProtection // bool
label.HasAdhocProtection // bool
Exemplo: Inspecionando tipos de proteção de rótulo
foreach (var label in engine.SensitivityLabels)
{
Console.WriteLine($"Label: {label.Name}");
if (label.HasRightsManagementPolicy)
{
if (label.HasDoNotForwardProtection)
Console.WriteLine(" Protection type: Do Not Forward");
else if (label.HasEncryptOnlyProtection)
Console.WriteLine(" Protection type: Encrypt Only");
else if (label.HasAdhocProtection)
Console.WriteLine(" Protection type: Ad-hoc (user-defined permissions)");
else
Console.WriteLine(" Protection type: Template-based");
}
else
{
Console.WriteLine(" No protection");
}
}
Relação com APIs existentes
Esses novos métodos complementam o método existente HasRightsManagementPolicy() . A relação é:
- Se
HasRightsManagementPolicy()retornarfalse, todos os três novos métodos também retornarãofalse. - Se
HasRightsManagementPolicy()retornartrue, pelo menos um dos novos métodos retornarátrueou nenhum retornarátruese o rótulo usar proteção baseada em modelo. - Um rótulo pode combinar ad-hoc (permissões definidas pelo usuário) com Não Encaminhar ou Criptografar Somente. Nesses casos combinados:
-
HasDoNotForwardProtection()retornatruequando o rótulo aplica a proteção Não Reencaminhar, incluindo ou não o comportamento ad hoc. -
HasEncryptOnlyProtection()retornatruequando o rótulo aplica a proteção Criptografar Somente, se ele também inclui comportamento ad hoc ou não. -
HasAdhocProtection()retornatruesomente quando o rótulo aplica proteção autônoma ad hoc (sem Não Encaminhar ou Criptografar Somente).
-
Próximas Etapas
- Rótulos e comportamento de proteção
- Permissões definidas pelo usuário
- Rótulos de classificação