Microsoft Information Protection File SDK - Giustificazione dell'azione per ridurre un'etichetta di riservatezza in un file (C#)
Articolo
Questo argomento di avvio rapido illustra la gestione di un'operazione di downgrade dell'etichetta quando i criteri di etichetta richiedono una giustificazione. In questo caso si userà l'interfaccia IFileHandler per modificare le etichette di un file. Per altri dettagli, vedere Informazioni di riferimento sulle API.
Prerequisiti
Se non è già stato fatto, assicurarsi di completare i prerequisiti seguenti prima di continuare:
Completare Avvio rapido: Impostare/ottenere etichette di riservatezza (C#) che compila una soluzione visual Studio iniziale per elencare le etichette di riservatezza di un'organizzazione e per impostare e leggere le etichette di riservatezza da e verso un file. Questa guida introduttiva "How to - Downgrade/Remove a label that needs a justification C#" (Procedura - Downgrade/Rimozione di un'etichetta che richiede una giustificazione C#) si basa su quella precedente.
Aggiungere la logica per impostare un'etichetta inferiore su un file protetto
Aggiungere la logica per impostare un'etichetta di riservatezza in un file usando l'oggetto Gestore file.
Aprire la soluzione di Visual Studio creata nella precedente "Guida introduttiva: Impostare/ottenere etichette di riservatezza(C#).
Usando Esplora soluzioni, aprire il file con estensione cs nel progetto che contiene l'implementazione del Main() metodo . Per impostazione predefinita, il nome del progetto che lo contiene è stato specificato durante la creazione del progetto.
Aggiornare il valore dell'argomento <label-id> di avvio rapido precedente a un'etichetta di riservatezza che richiede una giustificazione per l'abbassamento. Durante questa esecuzione di avvio rapido, questa etichetta verrà prima impostata e quindi si proverà a ridurla tramite frammenti di codice in altri passaggi.
Verso la fine del corpo, sotto Console.ReadKey() e sopra il Main() blocco di arresto dell'applicazione (dove è stata interrotta la guida introduttiva precedente), inserire il codice seguente.
C#
//Set paths and label IDstring lowerInput = actualOutputFilePath;
string lowerActualInput = lowerInput;
string newLabelId = "<new-label-id>";
string lowerOutput = "<downgraded-labled-output>";
string lowerActualOutput = lowerOutput;
//Create a file handler for that filevar 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 outputFilePathvar downgradedResult = Task.Run(async () => await downgradeHandler.CommitAsync(lowerActualOutput)).Result;
// Create a new handler to read the labeled file metadatavar commitHandler = Task.Run(async () => await fileEngine.CreateFileHandlerAsync(lowerOutput, lowerActualOutput, true)).Result;
// Get the label from output filevar 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();
Verso la fine di Main() trovare il blocco di arresto dell'applicazione creato nella guida introduttiva precedente e aggiungere le righe del gestore seguenti per rilasciare le risorse.
C#
downgradeHandler = null;
commitHandler = null;
Sostituire i valori segnaposto nel codice sorgente usando i valori seguenti:
Segnaposto
Valore
<downgraded-labled-output>
Percorso del file di output in cui salvare il file modificato.
<new-label-id>
ID modello copiato dall'output della console nell'argomento di avvio rapido precedente, ad esempio: bb7ed207-046a-4caf-9826-647cff56b990. Assicurarsi che abbia una sensibilità inferiore rispetto all'etichetta di file protetta in precedenza.
Compilare e testare l'applicazione
Compilare e testare l'applicazione client.
Usare CTRL-MAIUSC-B (Compila soluzione) per compilare l'applicazione client. Se non sono presenti errori di compilazione, usare F5 (Avvia debug) per eseguire l'applicazione.
Se il progetto viene compilato ed eseguito correttamente, l'applicazione potrebbe richiedere l'autenticazione usando Microsoft Authentication Library (MSAL) ogni volta che l'SDK chiama il AcquireToken() metodo. Se le credenziali memorizzate nella cache esistono già, non verrà richiesto di accedere e visualizzare l'elenco delle etichette, seguite dalle informazioni sull'etichetta applicata e sul file modificato.
Console
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.
Si noti che un approccio simile si applica anche all'operazione, nel caso in cui l'etichetta eliminata da un file richieda una giustificazione in base ai DeleteLabel() criteri di etichetta.DeleteLabel()la funzione genera un'eccezione e IsDowngradeJustified un JustificationRequiredException flag devono essere impostati su true nella gestione delle eccezioni prima di eliminare correttamente un'etichetta.
Questo modulo esamina il processo di implementazione delle etichette di riservatezza, tra cui l'applicazione di autorizzazioni amministrative appropriate, la determinazione di una strategia di distribuzione, la creazione, la configurazione e la pubblicazione di etichette e la rimozione e l'eliminazione di etichette.
Illustrare i concetti fondamentali della protezione dei dati, della gestione del ciclo di vita, della protezione delle informazioni e della conformità per proteggere una distribuzione di Microsoft 365.
Guida introduttiva che illustra come usare Microsoft Information Protection SDK .NET Wrapper per impostare e ottenere un'etichetta di riservatezza in un file (C#)