Краткое руководство. Консольное приложение .NET, которое обращается к защищенному веб-API
В этом кратком руководстве используется пример консольного приложения .NET для доступа к защищенному веб-API в качестве собственного удостоверения с помощью библиотеки проверки подлинности Майкрософт (MSAL) для .NET. Приложение является приложением управляющей программы, которое является конфиденциальным клиентским приложением и использует поток учетных данных клиента OAuth для получения маркера доступа для вызова API Microsoft Graph.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если у вас еще нет учетной записи, создайте ее бесплатно.
- Минимальное требование пакета SDK для .NET 6.0
- Visual Studio 2022 или Visual Studio Code
Регистрация идентификаторов приложения и записей
Чтобы завершить регистрацию, укажите имя приложения и укажите поддерживаемые типы учетных записей. После регистрации в области обзора приложения отображаются идентификаторы, необходимые в исходном коде приложения.
Войдите в центр администрирования Microsoft Entra.
Если у вас есть доступ к нескольким клиентам, используйте значок Параметры в верхнем меню, чтобы переключиться на клиент, в котором вы хотите зарегистрировать приложение из меню каталогов и подписок.
Перейдите к приложениям> удостоверений>Регистрация приложений выберите "Создать регистрацию".
Введите имя приложения, например identity-client-daemon-app.
Для параметра Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации. Для получения сведений о различных типах учетных записей выберите параметр "Справка ".
Выберите Зарегистрировать.
Панель обзора приложения отображается при завершении регистрации. Запишите идентификатор каталога (клиента), идентификатор приложения (клиента) и идентификатор объекта, которые будут использоваться в исходном коде приложения.
Примечание.
Поддерживаемые типы учетных записей можно изменить, ссылаясь на изменение учетных записей, поддерживаемых приложением.
Создание секрета клиента
- В Центре администрирования Microsoft Entra перейдите к приложениям> удостоверений>Регистрация приложений.
- Выберите приложение, зарегистрированное ранее.
- В области обзора приложения выберите "Сертификаты и секреты>нового секрета клиента".
- Введите описание секрета в поле "Описание ".
- Выберите срок действия секрета.
- Выберите Добавить.
- Запишите значение секрета клиента. Значение отображается только один раз, поэтому обязательно запишите его.
Клонирование или скачивание примера приложения
Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip .
Чтобы клонировать пример, откройте командную строку и перейдите к месту создания проекта и введите следующую команду:
git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
Скачайте файл .zip. Извлеките его в путь к файлу, где длина имени меньше 260 символов.
Настройка проекта
В интегрированной среде разработки откройте папку проекта ms-identity-docs-code-dotnet /console-daemon, содержащую пример.
Откройте Program.cs и замените содержимое файла следующим фрагментом кода;
// Full directory URL, in the form of https://login.microsoftonline.com/<tenant_id> Authority = " https://login.microsoftonline.com/Enter_the_tenant_ID_obtained_from_the_Microsoft_Entra_admin_center", // 'Enter the client ID obtained from the Microsoft Entra admin center ClientId = "Enter the client ID obtained from the Microsoft Entra admin center", // Client secret 'Value' (not its ID) from 'Client secrets' in the Microsoft Entra admin center ClientSecret = "Enter the client secret value obtained from the Microsoft Entra admin center", // Client 'Object ID' of app registration in Microsoft Entra admin center - this value is a GUID ClientObjectId = "Enter the client Object ID obtained from the Microsoft Entra admin center"
Authority
— центр — это URL-адрес, указывающий каталог, из который MSAL может запрашивать маркеры. Замените Enter_the_tenant_ID значением идентификатора каталога (клиента), записанного ранее.ClientId
— идентификатор приложения, который также называется клиентом. Замените текст в кавычкахApplication (client) ID
значением, записанным ранее на странице обзора зарегистрированного приложения.ClientSecret
— секрет клиента, созданный для приложения в Центре администрирования Microsoft Entra. Введите значение секрета клиента.ClientObjectId
— идентификатор объекта клиентского приложения. Замените текст в кавычкахObject ID
значением, записанным ранее на странице обзора зарегистрированного приложения.
Выполнение приложения
В терминале перейдите в каталог проекта ms-identity-docs-code-dotnet /console-daemon.
Выполните следующую команду, чтобы создать и запустить приложение:
dotnet run
Приложение запускается и отображает ответ, аналогичный следующему (сокращено для краткости):
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#applications/$entity", "id": "00001111-aaaa-2222-bbbb-3333cccc4444", "deletedDateTime": null, "appId": "00001111-aaaa-2222-bbbb-3333cccc4444", "applicationTemplateId": null, "disabledByMicrosoftStatus": null, "createdDateTime": "2021-01-17T15:30:55Z", "displayName": "identity-dotnet-console-app", "description": null, "groupMembershipClaims": null, ... }
Связанный контент
- Узнайте, создав это веб-приложение ASP.NET с помощью руководства по серии: регистрация приложения с помощью платформа удостоверений Майкрософт.
- Краткое руководство. Защита веб-API ASP.NET Core с помощью платформа удостоверений Майкрософт.
- Краткое руководство. Развертывание веб-приложения ASP.NET в службе приложение Azure