Delen via


Microsoft Information Protection SDK - Concepten van profiel- en engineobjecten

Profielen

Waar de MipContext klasse is voor het opslaan van SDK-specifieke instellingen, is het profiel de hoofdklasse voor alle MIP-labels en beveiligingsspecifieke bewerkingen in de MIP SDK. Voordat u een van de drie API-sets gebruikt, moet de clienttoepassing een profiel maken. Toekomstige bewerkingen worden uitgevoerd door het profiel of door andere objecten die aan het profiel zijn toegevoegd . Er wordt slechts één profielobject per proces aanbevolen. Het maken van meer dan één kan leiden tot onverwacht gedrag.

Er zijn drie typen profielen in de MIP SDK:

De API die in de verbruikende toepassing wordt gebruikt, bepaalt welke profielklasse moet worden gebruikt.

Het profiel zelf biedt de volgende functionaliteit:

  • Hiermee definieert u of de status moet worden geladen in het geheugen of moet worden bewaard op schijf en, indien persistent op schijf, moet deze worden versleuteld.
  • Definieert de mip::ConsentDelegate bewerkingen die moeten worden gebruikt voor toestemmingsbewerkingen.
  • Definieert de mip::FileProfile::Observer implementatie die wordt gebruikt voor asynchrone callbacks voor profielbewerkingen.

Profielinstellingen

  • MipContext: Het MipContext object dat is geïnitialiseerd voor het opslaan van toepassingsgegevens, het statuspad, enzovoort.
  • CacheStorageType: Definieert hoe de status moet worden opgeslagen: In het geheugen, op schijf of op schijf en versleuteld.
  • consentDelegate: Een gedeelde aanwijzer van klasse mip::ConsentDelegate.
  • observer: Een gedeelde aanwijzer naar de profiel-implementatie Observer (in PolicyProfile, ProtectionProfileen FileProfile).
  • applicationInfo: Een mip::ApplicationInfo object. Informatie over de toepassing die de SDK gebruikt, die overeenkomt met de registratie-id en naam van uw Microsoft Entra-toepassing.

Engines

De SDK-engines voor bestanden, profielen en beveiliging bieden een interface voor bewerkingen die worden uitgevoerd door een specifieke identiteit. Er wordt één engine toegevoegd aan het profielobject voor elke gebruiker of service-principal die zich aanmeldt bij de toepassing. Het is mogelijk om gedelegeerde bewerkingen uit te voeren via mip::ProtectionSettings en de bestands- of beveiligingshandler. Zie de sectie Beveiligingsinstellingen in de Concepten van FileHandler voor meer informatie.

Er zijn drie engineklassen in de SDK, één voor elke API. De volgende lijst bevat de engineklassen en enkele van de functies die aan elk zijn gekoppeld:

  • mip::ProtectionEngine
  • mip::PolicyEngine
    • ListSensitivityLabels(): Haalt de lijst met labels voor de geladen engine op.
    • GetSensitivityLabel(): Haalt het label op van bestaande inhoud.
    • ComputeActions(): Opgegeven met een label-id en optionele metagegevens, retourneert de lijst met acties die moeten worden uitgevoerd voor een specifiek item.
  • mip::FileEngine
    • ListSensitivityLabels(): Haalt de lijst met labels voor de geladen engine op.
    • CreateFileHandler(): Hiermee maakt u een mip::FileHandler voor een specifiek bestand of een specifieke stream.

Voor het maken van een engine moet een specifiek engine-instellingenobject worden doorgegeven dat de instellingen bevat voor het type engine dat moet worden gemaakt. Met het instellingenobject kan de ontwikkelaar details opgeven over de engine-id, de implementatie, landinstellingen mip::AuthDelegate en aangepaste instellingen, evenals andere API-specifieke details.

Enginestatussen

Een engine kan een van de volgende twee statussen hebben:

  • CREATED: Gemaakt geeft aan dat de SDK voldoende lokale statusgegevens heeft nadat de vereiste back-endservices zijn aangeroepen.
  • LOADED: De SDK heeft de vereiste gegevensstructuren gebouwd om de engine operationeel te maken.

Een engine moet zowel worden gemaakt als geladen om bewerkingen uit te voeren. De Profile klasse bevat enkele methoden voor enginebeheer: AddEngineAsync, DeleteEngineAsyncen UnloadEngineAsync.

In de volgende tabel worden de mogelijke enginestatussen beschreven en welke methoden die status kunnen wijzigen:

Motorstatus GEEN GEMAAKT GELADEN
GEEN AddEngineAsync
GEMAAKT DeleteEngineAsync AddEngineAsync
GELADEN DeleteEngineAsync UnloadEngineAsync

Engine-id

Elke engine heeft een unieke id, iddie wordt gebruikt in alle enginebeheerbewerkingen. De toepassing kan een , of de SDK kan er een idgenereren als deze niet wordt geleverd door de toepassing. Alle andere engine-eigenschappen (bijvoorbeeld e-mailadres in de identiteitsgegevens) zijn ondoorzichtige nettoladingen voor de SDK. De SDK voert geen logica uit om de andere eigenschappen uniek te houden of andere beperkingen af te dwingen.

Belangrijk

**Gebruik als best practice een engine-id die uniek is voor de gebruiker en gebruik die telkens wanneer de gebruiker een bewerking met de SDK uitvoert. Als u een bestaande, unieke engineId voor een gebruiker of service niet opgeeft, leidt dit tot extra retouren van services. Deze retouren van services kunnen leiden tot prestatievermindering en beperking. **

// Create the FileEngineSettings object
FileEngine::Settings engineSettings(mip::Identity(mUsername), // This will be the engine ID. UPN, email address, or other unique user identifiers are recommended. 
													          mAuthDelegate,            // authDelegate implementation 
													          "",                       // ClientData
													          "en-US",                  // Client Locale
                                    false);                   // Load Sensitive Information Types

Methoden voor enginebeheer

Zoals eerder vermeld, zijn er drie enginebeheermethoden in de SDK: AddEngineAsync, DeleteEngineAsyncen UnloadEngineAsync.

AddEngineAsync

Met deze methode wordt een bestaande engine geladen of wordt er een gemaakt als deze nog niet bestaat in de lokale status.

Als de toepassing geen ingeeft id FileEngineSettings, AddEngineAsync wordt er een nieuwe idgegenereerd. Vervolgens wordt gecontroleerd of er al een engine met die id bestaat in de lokale opslagcache. Als dat het geval is, wordt die motor geladen. Als de engine niet in de lokale cache bestaat, wordt er een nieuwe engine gemaakt door de benodigde API's en back-endservices aan te roepen.

Als de methode slaagt, wordt de engine in beide gevallen geladen en klaar voor gebruik.

DeleteEngineAsync

Hiermee verwijdert u de motor met de opgegeven id. Alle traceringen van de engine worden verwijderd uit de lokale cache.

UnloadEngineAsync

Laadt de in-memory gegevensstructuren voor de engine met de opgegeven id. De lokale status van deze engine is nog intact en kan opnieuw worden geladen.AddEngineAsync

Met deze methode kan de toepassing voorzichtig zijn met geheugengebruik door motoren te lossen die niet snel worden gebruikt.

Volgende stappen