Guida introduttiva: Inizializzazione dell'applicazione client per gli SDK di protezione (C#)

Questa guida introduttiva illustra come implementare il modello di inizializzazione client usato da MIP SDK .NET wrapper in fase di esecuzione.

Annotazioni

Qualsiasi applicazione client che usa MIP .NET wrapper Protection SDK richiede la procedura descritta in questa guida introduttiva. Completare queste guide introduttive in sequenza dopo l'inizializzazione dell'applicazione e l'implementazione delle classi del delegato di autenticazione e del delegato di consenso.

Prerequisiti

Se non è già stato fatto, assicurarsi di:

Creare una soluzione e un progetto di Visual Studio

Prima di tutto, creare e configurare la soluzione iniziale Visual Studio e il progetto su cui si basano gli altri argomenti di avvio rapido.

  1. Aprire Visual Studio 2022 o versione successiva, selezionare il menu File , Nuovo, Progetto. Nella finestra di dialogo Nuovo progetto :

    • Nel riquadro sinistro, in Installato, Visual C#, selezionare Desktop di Windows.

    • Nel riquadro centrale selezionare App console (.NET Framework).

    • Nel riquadro inferiore aggiornare di conseguenza il nome del progetto, il percorso e il nome della soluzione che lo contiene.

    • Al termine, selezionare OK nell'angolo in basso a destra.

      Creazione di una soluzione di Visual Studio.

  2. Aggiungere il pacchetto NuGet per MIP Protection SDK al progetto:

    • In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo del progetto direttamente sotto il nodo della soluzione superiore e quindi scegliere Gestisci pacchetti NuGet...:
    • Quando si apre la scheda Gestione pacchetti NuGet nell'area Schede del gruppo Editor:
      • Seleziona Sfoglia.
      • Immettere Microsoft.InformationProtection nella casella di ricerca.
      • Selezionare il Microsoft.InformationProtection.Protection pacchetto.
      • Selezionare Installa, quindi selezionare OK quando viene visualizzata la finestra di dialogo di conferma Anteprima delle modifiche.
  3. Ripetere i passaggi precedenti, ma aggiungere Microsoft.Identity.Client (MSAL) all'applicazione.

Se non è già implementato, seguire i passaggi elencati in Inizializzazione dell'applicazione File SDK per implementare l'autenticazione e il delegato di consenso.

Inizializzare il wrapper gestito di MIP SDK

  1. In Esplora soluzioni aprire il file .cs nel progetto che contiene l'implementazione del Main() metodo . Per impostazione predefinita, il nome è lo stesso del progetto che lo contiene, nome che hai specificato durante la creazione del progetto.

  2. Rimuovere l'implementazione generata di main().

  3. Il wrapper gestito include una classe statica, Microsoft.InformationProtection.MIP, per l'inizializzazione, la creazione di un MipContext, il caricamento dei profili e il rilascio di risorse. Per inizializzare il wrapper per le operazioni di Protection SDK, chiamare MIP.Initialize() e passare MipComponent.Protection per caricare le librerie necessarie per le operazioni di protezione.

  4. In Main() in Program.cs aggiungere il codice seguente, sostituendo <application-id> con l'ID della registrazione dell'applicazione Microsoft Entra creata in precedenza.

using System;
using System.Threading.Tasks;
using Microsoft.InformationProtection;
using Microsoft.InformationProtection.Exceptions;
using Microsoft.InformationProtection.Protection;

namespace mip_sdk_dotnet_quickstart
{
    class Program
    {
        private const string clientId = "<application-id>";
        private const string appName = "<friendly-name>";

        static void Main(string[] args)
        {
            //Initialize Wrapper for Protection SDK operations
            MIP.Initialize(MipComponent.Protection);
        }
    }
}

Creare un profilo e un motore di protezione

Come accennato, i client dell'SDK che usano le API MIP richiedono oggetti profilo e oggetti motore. Completa la parte relativa al codice di questa guida rapida aggiungendo il codice per caricare le DLL native e quindi istanziare gli oggetti profilo e motore.

using System;
using System.Threading.Tasks;
using Microsoft.InformationProtection;
using Microsoft.InformationProtection.Exceptions;
using Microsoft.InformationProtection.Protection;

namespace mip_sdk_dotnet_quickstart
{
     class Program
     {
          private const string clientId = "<application-id>";
          private const string appName = "<friendly-name>";

          static void Main(string[] args)
          {
               // Initialize Wrapper for Protection SDK operations.
               MIP.Initialize(MipComponent.Protection);

               // Create ApplicationInfo, setting the clientID from Azure AD App Registration as the ApplicationId.
               ApplicationInfo appInfo = new ApplicationInfo()
               {
                    ApplicationId = clientId,
                    ApplicationName = appName,
                    ApplicationVersion = "1.0.0"
               };

               // Instantiate the AuthDelegateImpl object, passing in AppInfo.
               AuthDelegateImplementation authDelegate = new AuthDelegateImplementation(appInfo);

               // Create MipConfiguration Object
               MipConfiguration mipConfiguration = new MipConfiguration(appInfo, "mip_data", LogLevel.Trace, false, CacheStorageType.OnDiskEncrypted);

               // Create MipContext using Configuration
               MipContext mipContext = MIP.CreateMipContext(mipConfiguration);
                
               // Initialize and instantiate the ProtectionProfile.
               // Create the ProtectionProfileSettings object.
               // Initialize protection profile settings to create/use local state.
               var profileSettings = new ProtectionProfileSettings(mipContext,
                                        CacheStorageType.OnDiskEncrypted,                                        
                                        new ConsentDelegateImplementation());

               // Load the Profile async and wait for the result.
               var protectionProfile = Task.Run(async () => await MIP.LoadProtectionProfileAsync(profileSettings)).Result;

               // Create a ProtectionEngineSettings object, then use that to add an engine to the profile.
               var engineSettings = new ProtectionEngineSettings("user1@tenant.com", authDelegate, "", "en-US");
               engineSettings.Identity = new Identity("user1@tenant.com");
               var protectionEngine = Task.Run(async () => await protectionProfile.AddEngineAsync(engineSettings)).Result;

               // Application Shutdown
               // handler = null; // This will be used in later quick starts.
               protectionEngine = null;
               protectionProfile = null;
               mipContext = null;
          }
     }
}
  1. Sostituire i valori segnaposto nel codice sorgente incollato usando i valori seguenti:

    Placeholder Valore Esempio
    <application-id> ID dell'applicazione Microsoft Entra assegnato all'applicazione registrata nell'installazione e configurazione di MIP SDK (2 istanze). 00001111-aaaa-2222-bbbb-3333cccc44444
    <nome amichevole> Nome descrittivo definito dall'utente per l'applicazione. AppInitialization
  2. A questo punto, eseguire una compilazione finale dell'applicazione e risolvere eventuali errori. Il codice dovrebbe essere compilato con successo.

Passaggi successivi

Ora che hai completato il codice di inizializzazione, sei pronto per la guida introduttiva successiva, in cui inizierai a usare gli SDK MIP Protection.