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


Сценарий. Вызов веб-API веб-ПРИЛОЖЕНИЯ (серверного приложения)

Область применения: Windows Server 2022, Windows Server 2019, AD FS 2019 и более поздних версий

Узнайте, как создать пользователей, прошедших вход в веб-приложение, прошедших проверку подлинности AD FS 2019 и получать маркеры с помощью библиотеки MSAL для вызова веб-API.

Перед чтением этой статьи необходимо ознакомиться с понятиями AD FS и потоком предоставления кода авторизации.

Обзор

Overview of web app calling web api

В этом потоке вы добавляете проверку подлинности в веб-приложение (серверное приложение), которое, следовательно, может выполнять вход пользователей и вызывать веб-API. В веб-приложении для вызова веб-API используйте метод получения маркера получения маркера MSAL в MsALByAuthorizationCode. Вы используете поток кода авторизации, сохраняя полученный маркер в кэше маркеров. Затем контроллер автоматически получает маркеры из кэша при необходимости. MSAL обновляет маркер, если это необходимо.

веб-приложения, вызывающие веб-API:

  • являются конфиденциальными клиентскими приложениями.
  • зарегистрировал секрет (общий секрет приложения, сертификат или учетную запись AD) в AD FS. Этот секрет передается во время вызова AD FS для получения маркера.

Чтобы зарегистрировать веб-приложение в AD FS и настроить его для получения маркеров для вызова веб-API, давайте рассмотрим пример, доступный здесь , и рассмотрим шаги по регистрации и настройке кода приложения.

Предварительные требования

  • Клиентские средства GitHub
  • AD FS 2019 или более поздней версии, настроенные и запущенные
  • Visual Studio 2013 или более поздней версии

Регистрация приложений в AD FS

В этом разделе показано, как зарегистрировать веб-приложение в качестве конфиденциального клиента и веб-API в качестве проверяющей стороны (RP) в AD FS.

  1. В разделе "Управление AD FS" щелкните Группы приложений правой кнопкой мыши и выберите Добавить группу приложений.

  2. В мастере группы приложений введите имя WebAppToWebApi и в разделе "Клиентские серверные приложения" выберите серверное приложение, обращающееся к шаблону веб-API. Нажмите кнопку Далее.

    Screenshot of the Welcome page of the Add Application Group Wizard showing the Server application accessing a web A P I template highlighted.

  3. Скопируйте значение идентификатора клиента. Значение будет использоваться позже в качестве значения ida:ClientId в файле web.config приложений. Введите следующий код ресурса (URI перенаправления):https://localhost:44326. Нажмите кнопку Добавить. Нажмите кнопку Далее.

    Screenshot of the Server application page of the Add Application Group Wizard showing the correct client identifier and redirect U R I.

  4. На экране "Настройка учетных данных приложения" поместите проверка-in Создать общий секрет и скопируйте секрет. Этот секрет используется позже в качестве значения для ida:ClientSecret в файле конфигурации приложений Web.config . Нажмите кнопку Далее.

    Screenshot of the Configure Application Credentials application page of the Add Application Group Wizard showing the Generate a shared secret option selected and the generated shared secret populated.

  5. На экране "Настройка веб-API" введите идентификатор:https://webapi. Нажмите кнопку Добавить. Нажмите кнопку Далее. Это значение используется позже для ida:GraphResourceId в файле конфигурации приложений Web.config .

    Screenshot of the Configure Web API page of the Add Application Group Wizard showing the correct identifier.

  6. На экране "Применить контроль доступа политика" нажмите кнопку "Разрешить всем" и нажмите кнопку "Далее".

    Screenshot of the Choose Access Control Policy page of the Add Application Group Wizard showing the Permit everyone option highlighted.

  7. На экране "Настройка разрешений приложения" убедитесь, что выбран открытый идентификатор и user_impersonation и нажмите кнопку "Далее".

    Screenshot of the Configure Application Permissions page of the Add Application Group Wizard showing the open I D and user impersonation options selected.

  8. На экране "Сводка" нажмите кнопку "Далее".

  9. На экране "Завершить" нажмите кнопку "Закрыть".

Конфигурация кода

В этом разделе показано, как настроить ASP.NET веб-приложение для входа пользователя и получения маркера для вызова веб-API

  1. Скачайте пример из этой страницы

  2. Открытие примера с помощью Visual Studio

  3. Откройте файл web.config. Измените следующее:

    • ida:ClientId — введите значение идентификатора клиента из #3 в разделе "Регистрация приложений" в разделе AD FS.

    • ida:ClientSecret— введите значение секрета из #4 в разделе "Регистрация приложений" в разделе AD FS.

    • ida:RedirectUri — введите значение URI перенаправления из #3 в разделе "Регистрация приложений" в разделе AD FS.

    • ida:Authority — введите https://[имя узла AD FS]/adfs. Пример: https://adfs.contoso.com/adfs.

    • ida:Resource— введите значение идентификатора из #5 в разделе "Регистрация приложений" в разделе AD FS.

      Screenshot of the web config file showing the modified values.

Тестирование примера

В этом разделе показано, как протестировать настроенный образец.

  1. После внесения изменений кода в решение будет выполнено перестроение.

  2. В верхней части Visual Studio убедитесь, что выбрана Обозреватель Интернета и щелкните зеленую стрелку.

    Screenshot of the Visual Studio UI with the IIS Express (Internet Explorer) option called out.

  3. На домашней странице щелкните вход.

    Screenshot of the Home Page with the Sign in option called out.

  4. Вы будете перенаправляться на страницу входа AD FS. Выполните вход.

    Screenshot of the Sign in page.

  5. После входа щелкните маркер доступа.

    Screenshot of the Home Page with the Access Token option called out.

  6. Щелкнув маркер доступа, получите сведения о маркере доступа, вызвав веб-API.

    Screenshot of the Access Token page showing the access token info.

Next Steps

Подключения AD FS OpenID или потоки OAuth и сценарии использования приложений