Краткое руководство: Инициализация клиентского приложения для SDK защиты (C#)

В этом кратком руководстве показано, как реализовать шаблон инициализации клиента, который обёртка .NET для пакета SDK MIP использует во время выполнения.

Замечание

Любому клиентскому приложению, использующему пакет SDK Protection для оболочки MIP .NET, необходимо выполнить действия, описанные в этом кратком руководстве. Выполните эти краткие руководства последовательно после инициализации приложения и реализации классов делегата проверки подлинности и делегата согласия.

Предпосылки

Если вы еще не сделали этого, обязательно выполните следующие действия.

Создание решения и проекта Visual Studio

Сначала создайте и настройте начальное решение и проект в Visual Studio, на основе которых строятся другие краткие руководства.

  1. Откройте Visual Studio 2022 или более поздней версии, выберите меню "Файл ", "Создать", " Проект". В диалоговом окне "Новый проект ":

    • В области слева в разделе "Установлен", Visual C# выберите "Рабочий стол Windows".

    • В центральной области выберите консольное приложение (.NET Framework).

    • В нижней области обновите имя проекта, расположение и соответствующее имя содержащего решения .

    • По завершении нажмите кнопку "ОК " в правом нижнем углу.

      Создание решения в Visual Studio.

  2. Добавьте пакет NuGet для пакета SDK для защиты MIP в проект:

    • В Обозреватель решений щелкните правой кнопкой мыши узел проекта непосредственно под верхним узлом решения, а затем выберите "Управление пакетами NuGet..."
    • Когда откроется вкладка Диспетчер пакетов NuGet в области вкладок группы редакторов:
      • Выберите Обзор.
      • Введите Microsoft.InformationProtection в поле поиска.
      • Microsoft.InformationProtection.Protection Выберите пакет.
      • Нажмите кнопку "Установить", а затем нажмите кнопку "ОК ", когда появится диалоговое окно подтверждения изменений предварительной версии .
  3. Повторите предыдущие шаги, но вместо этого добавьте Microsoft.Identity.Client (MSAL) в приложение.

Если это еще не реализовано, выполните шаги, приведенные в Инициализация приложения File SDK, чтобы реализовать делегат аутентификации и согласия.

Инициализируйте управляемую оболочку MIP SDK

  1. В обозревателе решений откройте файл .cs в проекте, который содержит реализацию Main() метода. По умолчанию используется то же имя, что и проект, содержащий его, указанный во время создания проекта.

  2. Удалите созданную реализацию main().

  3. Управляемая оболочка включает статический класс, Microsoft.InformationProtection.MIPдля инициализации, создания MipContext, загрузки профилей и освобождения ресурсов. Чтобы инициализировать обёртку для операций Protection SDK, вызовите MIP.Initialize() и передайте в него MipComponent.Protection для загрузки библиотек, необходимых для выполнения операций защиты.

  4. В файле Program.cs в Main() добавьте следующий код, заменив <application-id> на идентификатор регистрации приложения Microsoft Entra, которую вы создали ранее.

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

Создайте профиль защиты и движок

Как упоминалось, для клиентов SDK, использующих API MIP, требуются объекты профиля и ядра. Завершите раздел этого краткого руководства, посвящённый коду, добавив код для загрузки нативных DLL-библиотек, а затем создав экземпляры объектов профиля и ядра.

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. Замените значения-заполнители в исходном коде, который вы вставили, используя следующие значения:

    Замещающее поле Ценность Пример
    <идентификатор приложения> Идентификатор приложения Microsoft Entra, назначенный приложению, зарегистрированным в разделе "Настройка и конфигурация пакета SDK MIP" (2 экземпляра). 00001111-aaaa-2222-bbbb-3333cccc4444
    <понятное имя> Пользовательское понятное имя для вашего приложения. Инициализация приложения
  2. Теперь выполните окончательную сборку приложения и устраните все ошибки. Код должен успешно выполнить сборку.

Дальнейшие действия

Теперь, когда код инициализации завершен, вы готовы к следующему краткому руководству, где вы начнете работать с пакетами SDK для защиты MIP.