Share via


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

Profiler

MipContext Där är klassen för lagring av SDK-specifika inställningar är profilen 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. Framtida åtgärder utförs av profilen eller av andra objekt som läggs till i profilen. Endast ett enskilt profilobjekt per process rekommenderas. Om du skapar fler än en kan det leda till oväntat beteende.

Det finns tre typer av profiler i MIP SDK:

API:et som används i det förbrukande programmet avgör vilken profilklass som ska användas.

Själva profilen har följande funktioner:

  • Definierar om tillståndet ska läsas in i minnet eller sparas på disken och, om det sparas på disken, ska det krypteras.
  • Definierar det mip::ConsentDelegate som ska användas för medgivandeåtgärder.
  • Definierar den mip::FileProfile::Observer implementering 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, som matchar ditt Microsoft Entra-programregistrerings-ID och namn.

Motorer

SDK-motorerna Fil, Profil och Skydd tillhandahåller ett gränssnitt för åtgärder som utförs av en specifik identitet. En motor läggs till i profilobjektet för varje användare eller tjänstens huvudnamn som loggar in i programmet. Det går att utföra delegerade åtgärder via mip::ProtectionSettings och fil- eller skyddshanteraren. Mer information finns i avsnittet skyddsinställningar i FileHandler-begreppen .

Det finns tre motorklasser i SDK, 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.

För att skapa en motor krävs att ett specifikt motorinställningsobjekt skickas som innehåller inställningarna för den typ av motor som ska skapas. Med inställningsobjektet kan utvecklaren ange information om motoridentifieraren, mip::AuthDelegate implementeringen, nationella inställningar och anpassade inställningar samt 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 å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. Programmet kan ange en id, eller så kan SDK:t generera en, om den inte tillhandahålls av programmet. Alla andra motoregenskaper (till exempel e-postadress i identitetsinformationen) är ogenomskinliga nyttolaster för SDK:t. SDK:n utför INTE någon logik för att hålla någon av de andra egenskaperna unika eller framtvinga andra begränsningar.

Viktigt!

**Som bästa praxis använder du ett motor-ID som är unikt för användaren och använder det varje gång användaren utför en åtgärd med SDK:t. Om du inte anger ett befintligt, unikt engineId för en användare eller tjänst resulterar det i 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

Som tidigare nämnts finns det tre metoder för motorhantering i SDK: 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 i den id lokala lagringscachen. Om den gör det läser den in 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. Motorns lokala tillstånd är fortfarande intakt och kan läsas in 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