Microsoft Information Protection File SDK – A bizalmassági címke fájlon való csökkentésének műveleti indoklása (C#)

Ez a rövid útmutató egy leminősítési címkeművelet kezelését ismerteti, ha a címkeszabályzat indoklást igényel. Itt egy fájl címkéinek módosításához használunk IFileHandler felületet. További részletekért tekintse meg az API-referenciát.

Előfeltételek

Ha még nem tette meg, a folytatás előtt mindenképpen végezze el a következő előfeltételeket:

Logika hozzáadása egy alacsonyabb címke védett fájlhoz való beállításához

Adjon hozzá logikát egy fájl bizalmassági címkéjének beállításához a Fájlkezelő objektum használatával.

  1. Nyissa meg az előző "Rövid útmutató: Bizalmassági címkék beállítása/lekérése(C#) című rövid útmutatóban létrehozott Visual Studio-megoldást.

  2. A Megoldáskezelő használatával nyissa meg a metódus implementálását tartalmazó .cs fájlt a Main() projektben. Alapértelmezés szerint ugyanaz a név lesz, mint a projektet tartalmazó projekt, amelyet a projekt létrehozásakor adott meg.

  3. Frissítse az <label-id> előző gyorsútmutató értékét egy bizalmassági címkére, amely indokolja a leengedést. A rövid útmutató futtatása során először ezt a címkét állítjuk be, majd a további lépésekben kódrészletekkel próbáljuk csökkenteni.

  4. A törzs vége felé, az Main() alkalmazásleállítási blokk alatt Console.ReadKey() és felett (ahol az előző rövid útmutatóban abbahagyta), szúrja be a következő kódot.

    //Set paths and label ID
    string lowerInput = actualOutputFilePath;
    string lowerActualInput = lowerInput;
    string newLabelId = "<new-label-id>";
    string lowerOutput = "<downgraded-labled-output>";
    string lowerActualOutput = lowerOutput;
    
    //Create a file handler for that file
    var downgradeHandler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(lowerInput, lowerActualInput, true)).Result;
    
    //Set Labeling Options
    LabelingOptions options = new LabelingOptions()
    {
        AssignmentMethod = AssignmentMethod.Standard
    };
    
    try
    {
        //Try to set new label
        downgradeHandler.SetLabel(fileEngine.GetLabelById(newLabelId), options, new ProtectionSettings());
    }
    
    catch (Microsoft.InformationProtection.Exceptions.JustificationRequiredException)
    {
        //Request justification from user
        Console.Write("Please provide justification for downgrading a label: ");
        string justification = Console.ReadLine();
    
        options.IsDowngradeJustified = true;
        options.JustificationMessage = justification;
    
        //Set new label
        downgradeHandler.SetLabel(fileEngine.GetLabelById(newLabelId), options, new ProtectionSettings());
    }
    
    // Commit changes, save as outputFilePath
    var downgradedResult = Task.Run(async () => await downgradeHandler.CommitAsync(lowerActualOutput)).Result;
    
    // Create a new handler to read the labeled file metadata
    var commitHandler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(lowerOutput, lowerActualOutput, true)).Result;
    
    // Get the label from output file
    var newContentLabel = commitHandler.Label;
    Console.WriteLine(string.Format("Getting the new label committed to file: {0}", lowerOutput));
    Console.WriteLine(string.Format("File Label: {0} \r\nIsProtected: {1}", newContentLabel.Label.Name, newContentLabel.IsProtectionAppliedFromLabel.ToString()));
    Console.WriteLine("Press a key to continue.");
    Console.ReadKey();
    
    
  5. A Main() vége felé keresse meg az előző rövid útmutatóban létrehozott alkalmazásleállítási blokkot, és adja hozzá az alábbi kezelősorokat az erőforrások felszabadításához.

    downgradeHandler = null;
    commitHandler = null;
    
  6. Cserélje le a helyőrző értékeket a forráskódban a következő értékekkel:

    Helyőrző Value
    <visszaminősített-labled-output> A módosított fájlt menteni kívánt kimeneti fájl elérési útja.
    <new-label-id> Az előző rövid útmutatóban a konzol kimenetéből másolt sablonazonosító, például: bb7ed207-046a-4caf-9826-647cff56b990. Győződjön meg arról, hogy kisebb a bizalmassági szint, mint a korábban védett fájlcímke.

Az alkalmazás létrehozása és tesztelése

Hozza létre és tesztelje az ügyfélalkalmazást.

  1. Az ügyfélalkalmazás létrehozásához használja a CTRL-SHIFT-B (Build Solution) parancsot. Ha nincsenek buildelési hibái, használja az F5 (Hibakeresés indítása) lehetőséget az alkalmazás futtatásához.

  2. Ha a projekt sikeresen épül és fut, előfordulhat, hogy az alkalmazás a Microsoft Authentication Library (MSAL) használatával kéri a hitelesítést minden alkalommal, amikor az SDK meghívja a metódustAcquireToken(). Ha a gyorsítótárazott hitelesítő adatok már léteznek, a rendszer nem fogja kérni, hogy jelentkezzen be, és tekintse meg a címkék listáját, majd az alkalmazott címkére és a módosított fájlra vonatkozó információkat.

  Personal : 73c47c6a-eb00-4a6a-8e19-efaada66dee6
  Public : 73254501-3d5b-4426-979a-657881dfcb1e
  General : da480625-e536-430a-9a9e-028d16a29c59
  Confidential : 569af77e-61ea-4deb-b7e6-79dc73653959
  Highly Confidential : 905845d6-b548-439c-9ce5-73b2e06be157
  Press a key to continue.

  Getting the label committed to file: c:\Test\Test_labeled.docx
  Name: Confidential
  IsProtected: True
  Press any key to continue . . .

  Please provide justification for downgrading a label: Lower label approved.
  Getting the new label committed to file: c:\Test\Test_downgraded.docx
  File Label: General
  IsProtected: False
  Press a key to continue.

Vegye figyelembe, hogy hasonló megközelítés vonatkozik a műveletre DeleteLabel() is, ha a fájlból törölt címke indoklást igényel a címkeszabályzatnak megfelelően.DeleteLabel() a függvény kivételt JustificationRequiredException jelez, és IsDowngradeJustified a címke sikeres törlése előtt a jelölőt igaz értékre kell állítani a kivételkezelés során.