Поделиться через


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

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

Замечание

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

Предпосылки

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

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

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

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

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

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

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

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

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

  2. Добавьте пакет Nuget для пакета SDK для файлов MIP в проект:

    • В обозревателе решений щелкните правой кнопкой мыши узел проекта (непосредственно в верхнем узле или узле решения) и выберите пункт "Управление пакетами NuGet..."
    • Когда откроется вкладка Диспетчер пакетов NuGet в области вкладок группы редакторов:
      • Выберите Обзор.
      • В поле поиска введите "Microsoft.InformationProtection".
      • Выберите пакет Microsoft.InformationProtection.File.
      • Нажмите кнопку "Установить", а затем нажмите кнопку "ОК" при отображении диалогового окна подтверждения изменений предварительного просмотра .
  3. Повторите описанные выше действия для добавления пакета ПАКЕТА SDK для защиты MIP, но вместо этого добавьте в приложение элемент Microsoft.IdentityModel.Clients.ActiveDirectory.

Если аутентификация и делегат согласия еще не реализованы, выполните инструкции, перечисленные в инициализации приложения SDK для файлов.

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

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

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

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

  4. В Main()Program.cs добавьте следующий код, заменив <идентификатор> приложения идентификатором созданной ранее регистрации приложений 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);

               // 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("[email protected]", authDelegate, "", "en-US");
               engineSettings.Identity = new Identity("[email protected]");
               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 экземпляра). 0edbblll-8773-44de-b87c-b8c6276d41eb
    <понятное имя> Пользовательское понятное имя для вашего приложения. Инициализация приложения
  2. Теперь выполните окончательную сборку приложения и устраните все ошибки. Код должен успешно выполнить сборку.

Дальнейшие шаги

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