Vragen over typen van beveiliging voor labels

In dit artikel wordt beschreven hoe u MIP SDK-API's gebruikt om het type beveiliging te identificeren dat is geconfigureerd op een label, zodat uw toepassing gedrag en beslissingen over de gebruikersinterface kan nemen voordat beveiliging wordt toegepast. Het bevat ook een overzicht van de sleutel-API's en het verwachte gedrag voor elk beveiligingstype.

Overzicht

Vanaf MIP SDK 1.18 biedt de Label klasse methoden om te bepalen welk type beveiliging een label van toepassing is. Voorheen konden toepassingen alleen controleren HasRightsManagementPolicy() of een label beveiliging heeft toegepast. Met de nieuwe methoden kunnen toepassingen onderscheid maken tussen de volgende beveiligingstypen:

  • Niet doorsturen Beveiliging waardoor de ontvanger de inhoud niet kan doorsturen, afdrukken of kopiëren.
  • Alleen versleutelen Beveiliging waarmee de inhoud wordt versleuteld, maar de acties van de geadresseerde niet worden beperkt tot ontsleuteling.
  • Ad-hoc Beveiliging waarbij de gebruiker aangepaste machtigingen (door de gebruiker gedefinieerde rechten) definieert op het moment van de toepassing.

Met deze methoden kunnen toepassingen intelligentere beslissingen nemen over het afhandelen van labels. Een e-mailtoepassing kan bijvoorbeeld verschillende UI-opties presenteren, afhankelijk van of een label niet doorsturen of versleutelen alleen-beveiliging toepast.

Query's uitvoeren op beveiligingstypen voor labels

C++

De mip::Label klasse biedt de volgende methoden:

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

Voorbeeld: Labelbeveiligingstypen controleren

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)

In de .NET-wrapper bevat de Label klasse overeenkomende eigenschappen:

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

Voorbeeld: Labelbeveiligingstypen controleren

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

Relatie met bestaande API's

Deze nieuwe methoden vormen een aanvulling op de bestaande HasRightsManagementPolicy() methode. De relatie is:

  • Als HasRightsManagementPolicy()false retourneert, retourneren ook alle drie de nieuwe methoden false.
  • Als HasRightsManagementPolicy() deze retourneert, retourneert truetrueten minste één van de nieuwe methoden of geen retourneert true als het label gebruikmaakt van beveiliging op basis van sjablonen.
  • Een label kan ad-hoc (door de gebruiker gedefinieerde machtigingen) combineren met Niet doorsturen of Alleen versleutelen. In deze gecombineerde gevallen:
    • HasDoNotForwardProtection() retourneert true wanneer het label de "Niet Doorsturen"-beveiliging toepast, ongeacht of het ook ad-hocgedrag omvat.
    • HasEncryptOnlyProtection() geeft true wanneer het label Encrypt Only-bescherming toepast, ongeacht of het ook ad-hocgedrag bevat.
    • HasAdhocProtection() retourneert true alleen wanneer het label zelfstandige ad-hocbeveiliging toepast (zonder Niet doorsturen of Alleen versleutelen).

Volgende stappen