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.
En este artículo se describe cómo usar las API del SDK de MIP para identificar el tipo de protección configurado en una etiqueta para que la aplicación pueda tomar decisiones de comportamiento e interfaz de usuario antes de aplicar la protección. También resume las API clave y el comportamiento esperado para cada tipo de protección.
Visión general
A partir del SDK de MIP 1.18, la Label clase expone métodos para determinar qué tipo de protección se aplica una etiqueta. Anteriormente, las aplicaciones solo podían comprobar HasRightsManagementPolicy() si una etiqueta aplicaba alguna protección. Los nuevos métodos permiten a las aplicaciones diferenciar entre los siguientes tipos de protección:
- No reenviar Protección que impide que el destinatario reenvíe, imprima o copie el contenido.
- Cifrar solo Protección que cifra el contenido, pero no restringe las acciones del destinatario más allá del descifrado.
- Ad hoc Protección en la que el usuario define permisos personalizados (derechos definidos por el usuario) en el momento de la aplicación.
Estos métodos permiten a las aplicaciones tomar decisiones más inteligentes sobre cómo controlar las etiquetas. Por ejemplo, una aplicación de correo electrónico podría presentar diferentes opciones de interfaz de usuario en función de si una etiqueta aplica la protección de No reenviar frente a Protegido solo con cifrado.
Consulta de tipos de protección de etiquetas
C++
La mip::Label clase proporciona los métodos siguientes:
// 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;
Ejemplo: Inspección de tipos de protección de etiquetas
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)
En el contenedor de .NET, la Label clase expone las propiedades coincidentes:
label.HasRightsManagementPolicy // bool
label.HasDoNotForwardProtection // bool
label.HasEncryptOnlyProtection // bool
label.HasAdhocProtection // bool
Ejemplo: Inspección de tipos de protección de etiquetas
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");
}
}
Relación con las API existentes
Estos nuevos métodos complementan el método existente HasRightsManagementPolicy() . La relación es:
- Si
HasRightsManagementPolicy()devuelvefalse, los tres métodos nuevos también devuelvenfalse. - Si
HasRightsManagementPolicy()devuelvetrue, al menos uno de los nuevos métodos devuelvetrueo ningunotruesi la etiqueta usa protección basada en plantillas. - Una etiqueta puede combinar permisos ad hoc (permisos definidos por el usuario) con No reenviar o sólo cifrar. En estos casos combinados:
-
HasDoNotForwardProtection()devuelvetruecuando la etiqueta aplica la protección No reenviar, sin importar si incluye comportamiento ad hoc. -
HasEncryptOnlyProtection()devuelvetruecuando la etiqueta aplica la protección Cifrar solo, independientemente de si también incluye o no el comportamiento ad hoc. -
HasAdhocProtection()devuelvetruesolo cuando la etiqueta aplica protección ad hoc independiente, sin Do Not Forward o Encrypt Only.
-