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


Краткое руководство. Консольное приложение .NET, которое обращается к защищенному веб-API

В этом кратком руководстве используется пример консольного приложения .NET для доступа к защищенному веб-API в качестве собственного удостоверения с помощью библиотеки проверки подлинности Майкрософт (MSAL) для .NET. Приложение является приложением управляющей программы, которое является конфиденциальным клиентским приложением и использует поток учетных данных клиента OAuth для получения маркера доступа для вызова API Microsoft Graph.

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

Регистрация идентификаторов приложения и записей

Чтобы завершить регистрацию, укажите имя приложения и укажите поддерживаемые типы учетных записей. После регистрации в области обзора приложения отображаются идентификаторы, необходимые в исходном коде приложения.

  1. Войдите в центр администрирования Microsoft Entra.

  2. Если у вас есть доступ к нескольким клиентам, используйте значок Параметры в верхнем меню, чтобы переключиться на клиент, в котором вы хотите зарегистрировать приложение из меню каталогов и подписок.

  3. Перейдите к приложениям> удостоверений>Регистрация приложений выберите "Создать регистрацию".

  4. Введите имя приложения, например identity-client-daemon-app.

  5. Для параметра Поддерживаемые типы учетных записей выберите Учетные записи только в этом каталоге организации. Для получения сведений о различных типах учетных записей выберите параметр "Справка ".

  6. Выберите Зарегистрировать.

    Снимок экрана: ввод имени и выбор типа учетной записи в Центре администрирования Microsoft Entra.

  7. Панель обзора приложения отображается при завершении регистрации. Запишите идентификатор каталога (клиента), идентификатор приложения (клиента) и идентификатор объекта, которые будут использоваться в исходном коде приложения.

    Снимок экрана: значения идентификатора на странице обзора в Центре администрирования Microsoft Entra.

    Примечание.

    Поддерживаемые типы учетных записей можно изменить, ссылаясь на изменение учетных записей, поддерживаемых приложением.

Создание секрета клиента

  1. В Центре администрирования Microsoft Entra перейдите к приложениям> удостоверений>Регистрация приложений.
  2. Выберите приложение, зарегистрированное ранее.
  3. В области обзора приложения выберите "Сертификаты и секреты>нового секрета клиента".
  4. Введите описание секрета в поле "Описание ".
  5. Выберите срок действия секрета.
  6. Выберите Добавить.
  7. Запишите значение секрета клиента. Значение отображается только один раз, поэтому обязательно запишите его.

Клонирование или скачивание примера приложения

Чтобы получить пример приложения, можно клонировать его из GitHub или скачать его в виде файла .zip .

  • Чтобы клонировать пример, откройте командную строку и перейдите к месту создания проекта и введите следующую команду:

    git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
    
  • Скачайте файл .zip. Извлеките его в путь к файлу, где длина имени меньше 260 символов.

Настройка проекта

  1. В интегрированной среде разработки откройте папку проекта ms-identity-docs-code-dotnet /console-daemon, содержащую пример.

  2. Откройте 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 значением, записанным ранее на странице обзора зарегистрированного приложения.

Выполнение приложения

  1. В терминале перейдите в каталог проекта ms-identity-docs-code-dotnet /console-daemon.

  2. Выполните следующую команду, чтобы создать и запустить приложение:

    dotnet run
    
  3. Приложение запускается и отображает ответ, аналогичный следующему (сокращено для краткости):

    {
    "@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,
    ...
    }