Share via


Schnellstart: Initialisieren von Clientanwendungen für Protection SDKs (C#)

In diesem Schnellstart erfahren Sie, wie Sie das Muster für die Clientinitialisierung implementieren, das vom .NET-Wrapper für das MIP SDK zur Laufzeit verwendet wird.

Notiz

Die in diesem Schnellstart beschriebenen Schritte müssen für sämtliche Clientanwendungen ausgeführt werden, die das Protection SDK des MIP-.NET-Wrappers verwenden. Diese Schnellstarts sollten nach der Anwendungsinitialisierung und -implementierung von Authentifizierungsdelegat- und Einwilligungsdelegatklassen seriell durchgeführt werden.

Voraussetzungen

Falls noch nicht geschehen, sorgen Sie für Folgendes:

  • Führen Sie die Schritte unter Microsoft Information Protection (MIP) SDK: Setup und Konfiguration aus. Dieser Schnellstart „Einrichten von Protection-Profil und -Engine“ baut auf der richtigen Einrichtung und Konfiguration des SDK auf.
  • Optional:
    • Informieren Sie sich über Profil- und Engine-Objekte. Bei Profil- und Engine-Objekten handelt es sich um universelle Konzepte, die von Clients benötigt werden, die das File SDK, das Policy SDK oder das Protection SDK von MIP verwenden.
    • Lesen Sie die Authentifizierungskonzepte, um zu erfahren, wie die Authentifizierung und die Einwilligung vom SDK und der Clientanwendung implementiert werden.

Erstellen einer Visual Studio-Projektmappe und eines -Projekts

Zunächst erstellen und konfigurieren Sie die erste Projektmappe und das erste Projekt in Visual Studio. Diese bilden die Grundlage für die anderen Schnellstarts.

  1. Öffnen Sie Visual Studio 2017, und wählen Sie das Menü Datei, anschließend Neu und dann Projekt aus. Geben Sie im Dialogfeld Neues Projekt Folgendes ein:

    • 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, klicken Sie rechts unten auf die Schaltfläche OK.

      Visual Studio solution creation

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

    • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten (direkt unter dem obersten Knoten bzw. dem Projektmappenknoten), und wählen Sie NuGet-Pakete verwalten… aus:
    • Gehen Sie wie folgt vor, wenn im Bereich „Editor-Gruppe“ die Registerkarte NuGet-Paket-Manager geöffnet wird:
      • Wählen Sie Durchsuchen aus.
      • Geben Sie „Microsoft.InformationProtection“ in das Suchfeld ein.
      • Wählen Sie das Paket „Microsoft.InformationProtection.File“ aus.
      • Klicken Sie auf „Installieren“ und anschließend auf „OK“, wenn das Bestätigungsdialogfeld Vorschau der Änderungen anzeigen angezeigt wird.
  3. Wiederholen Sie die oben aufgeführten Schritte, um das Paket für das MIP Protection SDK hinzuzufügen, aber fügen Sie diesmal der Anwendung „Microsoft.IdentityModel.Clients.ActiveDirectory“ hinzu.

Führen Sie die unter Initialisieren der File SDK-Anwendung aufgeführten Schritte zum Implementieren der Authentifizierungs- und Einwilligungsdelegaten aus, falls sie noch nicht implementiert sind.

Initialisieren des verwalteten Wrappers des MIP SDK

  1. Öffnen Sie im Projektmappen-Explorer die CS-Datei im Projekt, die die Implementierung der Main()-Methode enthält. Standardmäßig weist sie denselben Namen wie das Projekt auf, in dem sie enthalten ist. Diesen Namen haben Sie bei der Projekterstellung angegeben.

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

  3. Der verwaltete Wrapper enthält eine statische Klasse (Microsoft.InformationProtection.MIP), die für die Initialisierung, das Erstellen eines MipContext, das Laden von Profilen und das Freigeben von Ressourcen verwendet wird. Zum Initialisieren des Wrappers für File SDK-Vorgänge rufen Sie MIP.Initialize() auf und übergeben MipComponent.Protection, um die erforderlichen Bibliotheken für Schutzvorgänge zu laden.

  4. Fügen Sie in Main() in der Datei Program.cs folgenden Codeausschnitt hinzu. Ersetzen Sie <application-id> dabei durch die ID der Azure AD-Anwendungsregistierung, die Sie zuvor erstellt haben.

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

Erstellen eines Protection-Profils und einer Protection-Engine

Wie bereits erwähnt sind für SDK-Clients, die MIP-APIs verwenden, Profil- und Engine-Objekte erforderlich. Vervollständigen Sie den Codeabschnitt dieses Schnellstarts, indem Sie Code hinzufügen, um die nativen DLLs zu laden und anschließend die Profil- und Engine-Objekte zu 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);

               // Create MipContext using Configuration
               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 in dem von Ihnen eingefügten Quellcode durch die folgenden Werte:

    Platzhalter Wert Beispiel
    <application-id> Die ID der Azure AD-Anwendung wird der unter „MIP SDK: Setup und Konfiguration“ registrierten Anwendung zugewiesen (2 Instanzen). 0edbblll-8773-44de-b87c-b8c6276d41eb
    <friendly-name> Ein benutzerdefinierter Anzeigename für Ihre Anwendung. AppInitialization
  2. Stellen Sie nun die Anwendung endgültig fertig, und beheben Sie etwaige Fehler. Der Code sollte erfolgreich erstellt werden.

Nächste Schritte

Da Ihr Initialisierungscode nun vollständig ist, können Sie mit dem nächsten Schnellstart fortfahren. Darin erfahren Sie mehr über die MIP Protection SDKs.