Frågor om etikettskyddstyp

Den här artikeln beskriver hur du använder MIP SDK-API:er för att identifiera vilken typ av skydd som konfigurerats på en etikett så att ditt program kan fatta beslut om beteende och användargränssnitt innan skyddet tillämpas. Den sammanfattar också viktiga API:er och förväntat beteende för varje skyddstyp.

Översikt

Från och med MIP SDK 1.18 Label exponerar klassen metoder för att avgöra vilken typ av skydd en etikett gäller. Tidigare kunde program bara kontrollera HasRightsManagementPolicy() om en etikett tillämpade något skydd. Med de nya metoderna kan program skilja mellan följande skyddstyper:

  • Vidarebefordra inte Skydd som förhindrar att mottagaren vidarebefordrar, skriver ut eller kopierar innehållet.
  • Endast kryptera Skydd som krypterar innehållet men inte begränsar mottagarens åtgärder utöver dekryptering.
  • Ad hoc Skydd där användaren definierar anpassade behörigheter (användardefinierade rättigheter) vid tidpunkten för programmet.

Dessa metoder gör det möjligt för program att fatta mer intelligenta beslut om hur etiketter ska hanteras. Ett e-postprogram kan till exempel presentera olika användargränssnittsalternativ beroende på om en etikett tillämpar Vidarebefordra inte jämfört med Krypteringsskydd.

Fråga efter etikettskyddstyper

C++

Klassen mip::Label innehåller följande metoder:

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

Exempel: Inspektera etikettskyddstyper

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)

I .NET-omslutningen Label exponerar klassen matchande egenskaper:

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

Exempel: Inspektera etikettskyddstyper

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

Relation till befintliga API:er

Dessa nya metoder kompletterar den befintliga HasRightsManagementPolicy() metoden. Relationen är:

  • Om HasRightsManagementPolicy() returnerar false, returnerar också alla tre nya metoder false.
  • Om HasRightsManagementPolicy() returnerar true, returnerar minst en av de nya metoderna true, eller ingen returnerar true om etiketten använder mallbaserat skydd.
  • En etikett kan kombinera ad hoc (användardefinierade behörigheter) med Vidarebefordra inte eller Kryptera endast. I dessa kombinerade fall:
    • HasDoNotForwardProtection() returnerar true när etiketten använder skyddet 'Vidarebefordra inte', oavsett om den även inkluderar ad-hoc-funktionalitet.
    • HasEncryptOnlyProtection() returnerar true när etiketten använder "Encrypt Only"-skydd, oavsett om den även omfattar ad hoc-beteende.
    • HasAdhocProtection() returnerar true endast när etiketten använder fristående ad hoc-skydd (utan Vidarebefordra inte eller Kryptera endast).

Nästa steg