Zapytania dotyczące typu ochrony etykiet

W tym artykule opisano sposób używania interfejsów API zestawu MIP SDK do identyfikowania typu ochrony skonfigurowanego na etykiecie, aby aplikacja mogła podejmować decyzje dotyczące zachowania i interfejsu użytkownika przed zastosowaniem ochrony. Zawiera również podsumowanie kluczowych interfejsów API i oczekiwanego zachowania dla każdego typu ochrony.

Przegląd

Począwszy od zestawu MIP SDK 1.18, Label klasa uwidacznia metody określania rodzaju ochrony stosowanej przez etykietę. Wcześniej aplikacje mogły sprawdzić HasRightsManagementPolicy() tylko, czy etykieta zastosowała jakąkolwiek ochronę. Nowe metody umożliwiają aplikacjom rozróżnianie następujących typów ochrony:

  • Nie przesyłaj dalej Ochrona uniemożliwiająca adresatowi przekazywanie, drukowanie lub kopiowanie zawartości.
  • Szyfruj tylko Ochrona, która szyfruje zawartość, ale nie ogranicza akcji adresata poza odszyfrowywaniem.
  • Ad hoc Ochrona, w której użytkownik definiuje uprawnienia niestandardowe (prawa zdefiniowane przez użytkownika) w czasie aplikacji.

Te metody umożliwiają aplikacjom podejmowanie bardziej inteligentnych decyzji dotyczących sposobu obsługi etykiet. Na przykład aplikacja poczty e-mail może prezentować różne opcje interfejsu użytkownika w zależności od tego, czy etykieta stosuje ochronę Nie Przesyłaj Dalej, czy ochronę Tylko Szyfrowanie.

Wykonywanie zapytań dotyczących typów ochrony etykiet

C++

Klasa mip::Label udostępnia następujące metody:

// 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;

Przykład: Inspekcja typów ochrony etykiet

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)

W opakowaniu platformy .NET klasa Label udostępnia odpowiadające właściwości:

label.HasRightsManagementPolicy  // bool
label.HasDoNotForwardProtection  // bool
label.HasEncryptOnlyProtection   // bool
label.HasAdhocProtection         // bool

Przykład: Inspekcja typów ochrony etykiet

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");
    }
}

Relacja z istniejącymi interfejsami API

Te nowe metody uzupełniają istniejącą HasRightsManagementPolicy() metodę. Relacja to:

  • Jeśli HasRightsManagementPolicy() zwraca wartość false, wszystkie trzy nowe metody zwracają również false.
  • Jeśli HasRightsManagementPolicy() zwraca true, co najmniej jedna z nowych metod zwraca true, lub żadna nie zwraca true, jeśli etykieta używa ochrony opartej na szablonach.
  • Etykieta może łączyć ad-hoc (uprawnienia zdefiniowane przez użytkownika) z Do Not Forward albo Encrypt Only. W tych połączonych przypadkach:
    • HasDoNotForwardProtection() Zwraca wartość true , gdy etykieta stosuje ochronę "Nie przesyłaj dalej", niezależnie od tego, czy obejmuje także zachowanie ad hoc.
    • HasEncryptOnlyProtection() Zwraca wartość true , gdy etykieta stosuje ochronę tylko do szyfrowania, niezależnie od tego, czy zawiera również zachowanie ad hoc.
    • HasAdhocProtection() Zwraca wartość true tylko wtedy, gdy etykieta stosuje autonomiczną ochronę ad hoc (bez opcji Nie przesyłaj dalej lub Szyfruj tylko).

Następne kroki