Schnellstart: Clientanwendungsinitialisierung für Schutz-SDKs (C#)

In dieser Schnellstartanleitung erfahren Sie, wie Sie das Clientinitialisierungsmuster implementieren, das vom MIP SDK .NET Wrapper zur Laufzeit verwendet wird.

Hinweis

Jede Clientanwendung, die das Protection SDK des MIP .NET Wrappers verwendet, erfordert die Schritte in dieser Schnellstartanleitung. Führen Sie diese Schnellstartanleitungen nacheinander nach der Initialisierung der Anwendung und der Implementierung der Klassen für den Authentifizierungsdelegaten und den Zustimmungsdelegaten aus.

Voraussetzungen

Sollten Sie das noch nicht getan haben, sorgen Sie dafür, dass Sie:

Erstellen einer Visual Studio-Projektmappe und eines -Projekts

Erstellen und konfigurieren Sie zunächst die erste Visual Studio Lösung und projekt, auf der die anderen Schnellstarts aufbauen.

  1. Öffnen Sie Visual Studio 2022 oder höher, wählen Sie das Menü "Datei ", "Neu", "Projekt" aus. Im Dialogfeld "Neues Projekt ":

    • Wählen Sie im linken Bereich unter "Installiert" Visual C#die Option "Windows Desktop" aus.

    • Wählen Sie im mittleren Bereich konsolen-App (.NET Framework) aus.

    • Aktualisieren Sie im unteren Bereich Name, Speicherort und den darin enthaltenen Projektmappennamen des Projekts.

    • Wenn Sie fertig sind, wählen Sie in der unteren rechten Ecke "OK " aus.

      Visual Studio Lösungserstellung.

  2. Fügen Sie das NuGet-Paket für das MIP Protection SDK zu Ihrem Projekt hinzu:

    • Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten direkt unter dem oberen Lösungsknoten, und wählen Sie dann "NuGet-Pakete verwalten"...:
    • Wenn die Registerkarte "NuGet-Paket-Manager " im Bereich "Editorgruppe" geöffnet wird:
      • Wählen Sie Durchsuchen aus.
      • Geben Sie Microsoft.InformationProtection in das Suchfeld ein.
      • Wählen Sie das Microsoft.InformationProtection.Protection Paket aus.
      • Wählen Sie "Installieren" und dann "OK " aus, wenn das Bestätigungsdialogfeld "Vorschau" angezeigt wird.
  3. Wiederholen Sie die vorherigen Schritte, fügen Sie der Anwendung diesmal jedoch Microsoft.Identity.Client (MSAL) hinzu.

Wenn sie noch nicht implementiert ist, führen Sie die schritte aus, die im File SDK-Anwendungsinitialisierung aufgeführt sind, um den Authentifizierungs- und Zustimmungsdelegat zu implementieren.

Initialisieren Sie den verwalteten Wrapper für das MIP SDK

  1. Öffnen Sie im Projektmappen-Explorer die CS-Datei im Projekt, die die Implementierung der Main()-Methode enthält. Standardmäßig wird derselbe Name wie das Projekt verwendet, das es enthält, das Sie während der Projekterstellung angegeben haben.

  2. Entfernen Sie die generierte Implementierung von main().

  3. Der verwaltete Wrapper enthält eine statische Klasse, Microsoft.InformationProtection.MIPfür die Initialisierung, das Erstellen von MipContextProfilen, das Laden von Profilen und das Freigeben von Ressourcen. Um den Wrapper für Protection SDK-Vorgänge zu initialisieren, rufen Sie MIP.Initialize() auf und übergeben Sie MipComponent.Protection, um die für Schutzvorgänge erforderlichen Bibliotheken zu laden.

  4. Main() Fügen Sie in Program.cs den folgenden Code hinzu, indem Sie die Anwendungs-ID> durch die ID der zuvor erstellten Microsoft Entra Anwendungsregistrierung ersetzen<.

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

Ein Schutzprofil und eine Engine konstruieren

Wie erwähnt, erfordern SDK-Clients, die MIP-APIs verwenden, Profil- und Modulobjekte. Schließen Sie den Codierungsteil dieser Schnellstartanleitung ab, indem Sie Code zum Laden der systemeigenen DLLs hinzufügen und dann die Profil- und Modulobjekte instanziieren.

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. Ersetzen Sie die Platzhalterwerte im Quellcode, in den Sie eingefügt haben, mithilfe der folgenden Werte:

    Platzhalter Wert Beispiel
    <application-id> Die Microsoft Entra-Anwendungs-ID, die der Anwendung zugewiesen ist, die in "MIP SDK-Setup und -Konfiguration" registriert ist (2 Instanzen). 00001111-aaaa-2222-bbbb-3333cccc44444
    <Freundlicher Name> Ein benutzerdefinierter, benutzerfreundlicher Name für Ihre Anwendung. AppInitialization
  2. Führen Sie nun einen endgültigen Build der Anwendung aus, und beheben Sie alle Fehler. Der Code sollte erfolgreich erstellt werden.

Nächste Schritte

Nachdem Sie den Initialisierungscode fertiggestellt haben, sind Sie bereit für den nächsten Schnellstart, in dem Sie erste Erfahrungen mit den MIP Protection SDKs sammeln.