Краткое руководство. Инициализация клиентских приложений для пакетов SDK Protection (C#)
В этом кратком руководстве показано, как реализовать шаблон инициализации клиентов, используемый пакетом SDK MIP для оболочки .NET во время выполнения.
Примечание.
Действия, описанные в этом кратком руководстве, применимы к любому клиентскому приложению, использующему пакеты SDK MIP Protection для оболочки .NET. Эти краткие руководства следует изучать последовательно после инициализации приложения и реализации классов делегата проверки подлинности и делегата согласия.
Необходимые компоненты
Обязательно сделайте следующее, если еще этого не сделали:
- Выполните действия, описанные в статье Установка и настройка пакета SDK Microsoft Information Protection (MIP). Для работы с кратким руководством "Настройка профиля и подсистемы Protection" требуется правильная установка и настройка пакета SDK.
- Дополнительно:
- Просмотрите раздел Объекты профиля и подсистемы. Объекты профиля и подсистемы — это универсальные понятия для клиентов, которые используют пакеты SDK MIP File, Policy и Protection.
- Изучите основные понятия проверки подлинности, чтобы узнать, как пакет SDK и клиентское приложение реализуют проверку подлинности и согласие.
Создание решения и проекта Visual Studio
Сначала мы создадим и настроим первоначальное решение и проект Visual Studio, которые будут использоваться при работе с другими краткими руководствами.
В Visual Studio 2017 откройте меню Файл и выберите Создать и Проект. В диалоговом окне Новый проект:
Добавьте пакет Nuget для пакета SDK MIP File в проект:
- В Обозревателе решений щелкните правой кнопкой мыши узел проекта (непосредственно под верхним узлом или узлом решения) и выберите Управление пакетами NuGet:
- Когда откроется вкладка NuGet диспетчер пакетов в области вкладок группы редакторов:
- Выберите Обзор.
- Введите Microsoft.InformationProtection в поле поиска.
- Выберите пакет Microsoft.InformationProtection.File.
- Когда отобразится диалоговое окно подтверждения Предварительный просмотр изменений, щелкните "Установить" и "ОК".
Повторите эти действия, чтобы добавить пакет SDK MIP Protection, но вместо этого добавьте Microsoft.IdentityModel.Clients.ActiveDirectory в приложение.
Реализация делегата проверки подлинности и делегата согласия
Если делегат проверки подлинности и делегат согласия не реализованы, выполните шаги, приведенные в статье Инициализация приложений пакета SDK File.
Инициализация пакета SDK MIP для управляемой оболочки
В Обозревателе решений откройте файл .cs в проекте, содержащем реализацию метода
Main()
. По умолчанию он имеет то же имя, что и содержащий его проект, который вы указали при создании проекта.Удалите созданную реализацию
main()
.У управляемой оболочки есть статический класс
Microsoft.InformationProtection.MIP
, используемый для инициализации, созданияMipContext
, загрузки профилей и освобождения ресурсов. Чтобы инициализировать оболочку для операций пакета SDK File, вызовитеMIP.Initialize()
, передав вMipComponent.Protection
, чтобы загрузить библиотеки, необходимые для операций защиты.В
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;
}
}
}
Замените значения-заполнители в исходном коде, который вы вставили, следующими значениями:
Заполнитель Значение Пример <application-id> Идентификатор приложения Microsoft Entra, назначенный приложению, зарегистрированным в разделе "Настройка и конфигурация пакета SDK MIP" (2 экземпляра). 0edbblll-8773-44de-b87c-b8c6276d41eb <friendly-name> Определенное пользователем понятное имя вашего приложения. AppInitialization Теперь вы можете выполнить окончательную сборку приложения и устранить все ошибки. Сборка кода должна выполниться успешно.
Дальнейшие действия
Теперь, когда код инициализации написан, вы можете переходить к следующему краткому руководству по началу работы с пакетом SDK MIP Protection.