Szybki start: inicjowanie aplikacji klienckich dla zestawów SDK ochrony (C#)

W tym przewodniku Szybki start pokazano, jak zaimplementować wzorzec inicjowania klienta, którego zestaw MIP SDK .NET używa w czasie wykonywania.

Uwaga

Każda aplikacja kliencka korzystająca z zestawu SDK ochrony .NET miP wymaga wykonania kroków opisanych w tym przewodniku Szybki start. Wykonaj kolejno te przewodniki Szybki start po zainicjowaniu aplikacji oraz zaimplementowaniu klas delegatów uwierzytelniania i zgody.

Wymagania wstępne

Jeśli jeszcze tego nie zrobiono, upewnij się, że:

Tworzenie rozwiązania i projektu programu Visual Studio

Najpierw utwórz i skonfiguruj początkowe rozwiązanie oraz projekt programu Visual Studio, na których bazują inne przewodniki z serii Szybki start.

  1. Otwórz program Visual Studio 2022 lub nowszy, wybierz menu Plik , Nowy, Projekt. W oknie dialogowym Nowy projekt :

    • W okienku po lewej stronie w obszarze Zainstalowane, Visual C# wybierz pozycję Pulpit systemu Windows.

    • W środkowym okienku wybierz pozycję Aplikacja konsolowa (.NET Framework).

    • W dolnym okienku zaktualizuj odpowiednio nazwę projektu,lokalizację i nazwę rozwiązania zawierającego.

    • Po zakończeniu wybierz przycisk OK w prawym dolnym rogu.

      Tworzenie rozwiązania w programie Visual Studio.

  2. Dodaj pakiet NuGet dla zestawu MIP Protection SDK do projektu:

    • W Eksplorator rozwiązań kliknij prawym przyciskiem myszy węzeł projektu bezpośrednio w górnym węźle rozwiązania, a następnie wybierz polecenie Zarządzaj pakietami NuGet...:
    • Po otwarciu karty Menedżer pakietów NuGet w obszarze kart Grupy edytora:
      • Wybierz przycisk Przeglądaj.
      • W polu wyszukiwania wpisz Microsoft.InformationProtection.
      • Microsoft.InformationProtection.Protection Wybierz pakiet.
      • Wybierz pozycję Zainstaluj, a następnie wybierz przycisk OK po wyświetleniu okna dialogowego potwierdzenia zmiany podglądu .
  3. Powtórz poprzednie kroki, ale zamiast tego dodaj Microsoft.Identity.Client element (MSAL) do aplikacji.

Jeśli nie zostało to jeszcze zaimplementowane, postępuj zgodnie z krokami wymienionymi w sekcji Inicjalizacja aplikacji File SDK, aby zaimplementować delegata uwierzytelniania i zgody.

Zainicjować zarządzaną otoczkę pakietu SDK MIP

  1. W Eksploratorze rozwiązań otwórz plik .cs w projekcie zawierający implementację Main() metody . Domyślnie ma taką samą nazwę jak projekt zawierający go, który został określony podczas tworzenia projektu.

  2. Usuń wygenerowaną implementację elementu main().

  3. Zarządzana otoka zawiera klasę statyczną Microsoft.InformationProtection.MIP, służącą do inicjowania, tworzenia obiektu MipContext, ładowania profili i zwalniania zasobów. Aby zainicjować obiekt opakowujący dla operacji SDK ochrony, wywołaj MIP.Initialize() i przekaż MipComponent.Protection, aby załadować biblioteki niezbędne do operacji ochrony.

  4. W Main() w pliku Program.cs dodaj następujący kod, zastępując <application-id> identyfikatorem rejestracji aplikacji Microsoft Entra utworzonej wcześniej.

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);
        }
    }
}

Konstruowanie profilu i aparatu ochrony

Jak wspomniano, klienci zestawu SDK korzystający z interfejsów API MIP wymagają obiektów profilu i silnika. Ukończ część tego przewodnika Szybki start dotyczącą kodu, dodając kod do załadowania natywnych bibliotek DLL, a następnie tworząc obiekty profilu i silnika.

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. Zastąp wartości zastępcze w kodzie źródłowym, który został wklejony, używając następujących wartości:

    Element zastępczy Wartość Przykład
    <identyfikator aplikacji> Identyfikator aplikacji Entra firmy Microsoft przypisany do aplikacji zarejestrowanej w sekcji "Konfiguracja i konfiguracja zestawu MIP SDK" (2 wystąpienia). 00001111-aaaa-2222-bbbb-3333cccc44444
    <przyjazna nazwa> Przyjazna nazwa aplikacji zdefiniowana przez użytkownika. Inicjalizacja aplikacji
  2. Teraz wykonaj ostateczną kompilację aplikacji i rozwiąż wszelkie błędy. Kod powinien zostać pomyślnie skompilowany.

Następne kroki

Teraz, gdy ukończono kod inicjalizacyjny, możesz przejść do następnego przewodnika Szybki start, w którym zaczniesz poznawać pakiety SDK usługi MIP Protection.