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


Краткое руководство. Инициализация клиентских приложений для пакетов SDK Protection (C#)

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

Примечание.

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

Необходимые компоненты

Обязательно сделайте следующее, если еще этого не сделали:

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

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

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

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

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

    • В области внизу обновите значения полей Имя и Расположение для проекта, а также Имя решения.

    • Завершив, щелкните ОК внизу справа.

      Visual Studio solution creation

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

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

Если делегат проверки подлинности и делегат согласия не реализованы, выполните шаги, приведенные в статье Инициализация приложений пакета SDK File.

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

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

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

  3. У управляемой оболочки есть статический класс Microsoft.InformationProtection.MIP, используемый для инициализации, создания MipContext, загрузки профилей и освобождения ресурсов. Чтобы инициализировать оболочку для операций пакета SDK File, вызовите 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);
        }
    }
}

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

    Заполнитель Значение Пример
    <application-id> Идентификатор приложения Microsoft Entra, назначенный приложению, зарегистрированным в разделе "Настройка и конфигурация пакета SDK MIP" (2 экземпляра). 0edbblll-8773-44de-b87c-b8c6276d41eb
    <friendly-name> Определенное пользователем понятное имя вашего приложения. AppInitialization
  2. Теперь вы можете выполнить окончательную сборку приложения и устранить все ошибки. Сборка кода должна выполниться успешно.

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

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