Microsoft Information Protection SDK – begrepp för profil- och motorobjekt

Profiler

Klassen MipContext lagrar SDK-specifika inställningar. Profilen är rotklassen för alla MIP-etiketter och skyddsspecifika åtgärder i MIP SDK. Innan du använder någon av de tre API-uppsättningarna måste klientprogrammet skapa en profil. Profilen eller andra objekt som läggs till i profilen utför framtida åtgärder. Använd endast ett profilobjekt per process. Om du skapar fler än en kan det leda till oväntat beteende.

MIP SDK har tre typer av profil:

Det API som det förbrukande programmet använder avgör vilken profilklass som ska användas.

Själva profilen har följande funktioner:

  • Tillståndslagring: Definierar om tillståndet ska läsas in i minnet eller sparas på disken och om tillståndet ska krypteras om det sparas på disken.
  • Samtyckesdelegat: Definierar vilken mip::ConsentDelegate som ska användas för samtyckesåtgärder.
  • Filprofilsobservatör: Definierar implementeringen mip::FileProfile::Observer som ska användas för asynkrona återanrop för profilåtgärder.

Profilinställningar

  • MipContext: Objektet MipContext som initierades för att lagra programinformation, tillståndssökväg osv.
  • CacheStorageType: Definierar hur du lagrar tillstånd: I minne, på disk eller på disk och krypterad.
  • consentDelegate: En delad pekare för klassen mip::ConsentDelegate.
  • observer: En delad pekare till profilimplementeringen Observer (i PolicyProfile, ProtectionProfileoch FileProfile).
  • applicationInfo: Ett mip::ApplicationInfo objekt. Information om programmet som använder SDK:t och matchar ditt Microsoft Entra programregistrerings-ID och namn.

Motorer

SDK-motorerna File, Policy och Protection tillhandahåller ett gränssnitt för åtgärder som utförs av en specifik identitet. Lägg till en motor i profilobjektet för varje användare eller tjänstens huvudnamn som loggar in i programmet. Du kan utföra delegerade åtgärder med hjälp av mip::ProtectionSettings och fil- eller skyddshanteraren. Mer information finns i avsnittet skyddsinställningar i FileHandler-begreppen.

SDK:n har tre motorklasser, en för varje API. I följande lista visas motorklasserna och några av de funktioner som är associerade med var och en:

  • mip::ProtectionEngine
  • mip::PolicyEngine
    • ListSensitivityLabels(): Hämtar listan med etiketter för den inlästa motorn.
    • GetSensitivityLabel(): Hämtar etiketten från befintligt innehåll.
    • ComputeActions(): Tillhandahålls med ett etikett-ID och valfria metadata, returnerar listan över åtgärder som ska utföras för ett visst objekt.
  • mip::FileEngine
    • ListSensitivityLabels(): Hämtar listan med etiketter för den inlästa motorn.
    • CreateFileHandler(): Skapar en mip::FileHandler för en specifik fil eller dataström.

Om du vill skapa en motor skickar du in ett specifikt motorinställningsobjekt som innehåller inställningarna för vilken typ av motor som ska skapas. Med inställningsobjektet kan utvecklaren ange information om motoridentifieraren, mip::AuthDelegate implementeringen, nationella inställningar, anpassade inställningar och annan API-specifik information.

Motortillstånd

En motor kan ha ett av två tillstånd:

  • CREATED: Skapad anger att SDK:et har tillräckligt med lokal tillståndsinformation efter att de nödvändiga serverdelstjänsterna har anropats.
  • LOADED: SDK:t har skapat de datastrukturer som krävs för att motorn ska fungera.

En motor måste både skapas och läsas in för att utföra några åtgärder. Klassen Profile exponerar några metoder för motorhantering: AddEngineAsync, DeleteEngineAsyncoch UnloadEngineAsync.

I följande tabell beskrivs möjliga motortillstånd och vilka metoder som kan ändra det tillståndet:

Motortillstånd INGET SKAPAD LADDAD
INGET AddEngineAsync
SKAPAD DeleteEngineAsync AddEngineAsync
LADDAD DeleteEngineAsync Ta bortEngineAsync

Motor-ID

Varje motor har en unik identifierare, id, som används i alla motorhanteringsåtgärder. Applikationen kan tillhandahålla en id. Om programmet inte tillhandahåller något kan SDK:t generera det. Alla andra motoregenskaper, till exempel e-postadressen i identitetsinformationen, är ogenomskinliga nyttolaster för SDK:t. SDK:n utför inte logik för att hålla andra egenskaper unika eller framtvinga andra begränsningar.

Viktigt!

Använd ett motor-ID som är unikt för användaren och använd det motor-ID:t varje gång användaren utför en åtgärd med SDK:t. Om du inte anger ett befintligt unikt motor-ID för en användare eller tjänst gör SDK:t extra tjänsteresor. Dessa tjänsteresor kan leda till prestandaförsämring och begränsning.

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

Metoder för motorhantering

SDK:et har tre metoder för motorhantering: AddEngineAsync, DeleteEngineAsyncoch UnloadEngineAsync.

AddEngineAsync

Den här metoden läser in en befintlig motor eller skapar en om den inte redan finns i lokalt tillstånd.

Om programmet inte anger ett id i FileEngineSettingsAddEngineAsync genererar ett nytt id. Den kontrollerar sedan om det redan finns en motor med den id i den lokala lagringscache. Om så är fallet laddar den motorn. Om motorn inte finns i den lokala cachen skapas en ny motor genom att anropa nödvändiga API:er och serverdelstjänster.

Om metoden lyckas i båda fallen läses motorn in och är redo att användas.

DeleteEngineAsync

Tar bort motorn med angiven id. Alla spår av motorn tas bort från den lokala cachen.

Ta bortEngineAsync

Tar bort minnesinterna datastrukturer för motorn med angiven id. Den här motorns lokala tillstånd förblir intakt, och du kan ladda in det igen med AddEngineAsync.

Med den här metoden kan programmet vara omdömesgillt när det gäller minnesanvändning genom att ta bort motorer som inte förväntas användas snart.

Nästa steg