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


Сценарий. Вызов веб-API собственного приложения

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

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

Обзор

Обзор

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

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

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

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

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

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

  1. В ad FS Management щелкните правой кнопкой мыши группы приложений и выберите "Добавить группу приложений".

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

    Снимок экрана: страница приветствия мастера добавления группы приложений с выделенным шаблоном веб-API собственного приложения.

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

    Снимок экрана: страница собственного приложения мастера добавления группы приложений с перенаправлением U R I.

  4. На экране "Настройка веб-API" введите идентификатор:https://localhost:44321/. Нажмите кнопку Добавить. Нажмите кнопку Далее. Это значение будет использоваться позже в файлах App.config и Web.config приложения.

    Снимок экрана: страница

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

    Снимок экрана: страница

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

    Снимок экрана: страница

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

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

  9. В службе управления AD FS щелкните группы приложений и выберите группу приложений NativeAppToWebApi . Щелкните его правой кнопкой мыши и выберите Свойства.

    Снимок экрана: диалоговое окно

  10. На экране свойств NativeAppToWebApi выберите NativeAppToWebApi — веб-API в веб-API и нажмите кнопку "Изменить".

    Снимок экрана: диалоговое окно

  11. На экране "Свойства веб-API" в NativeAppToWebApi выберите вкладку "Правила преобразования выдачи" и нажмите кнопку "Добавить правило".

    Снимок экрана: диалоговое окно

  12. В мастере добавления правила утверждения преобразования выберите "Преобразовать входящее утверждение " из шаблона правила утверждения: раскрывающийся список и нажмите кнопку "Далее".

    Снимок экрана: страница

  13. Введите NameID в имя правила утверждения: поле. Выберите имя для типа входящего утверждения:, идентификатор имени для типа исходящих утверждений: и формат идентификатора исходящего имени:. Нажмите кнопку " Готово".

    Снимок экрана: страница

  14. Нажмите кнопку "ОК" на экране "Свойства веб-API NativeAppToWebApi" и экран свойств NativeAppToWebApi.

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

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

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

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

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

    • ida:Authority — ввод чttps://[your AD FS hostname]/adfs

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

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

    • todo:TodoListResourceId — введите значение идентификатора из #4 в разделе "Регистрация приложений" в разделе AD FS выше

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

      Снимок экрана: файл конфигурации приложения с измененными значениями.

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

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

    • ida: AdfsMetadataEndpoint — ввод https://[your AD FS hostname]/federationmetadata/2007-06/federationmetadata.xml

      Снимок экрана: файл веб-конфигурации с измененными значениями.

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

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

  1. После внесения изменений в код решения

  2. В Visual Studio щелкните правой кнопкой мыши решение и выберите " Задать начальные проекты" ...

    Снимок экрана: список, который отображается при щелчке правой кнопкой мыши решения с выделенным параметром

  3. На страницах свойств убедитесь, что для каждого проекта задано значение "Пуск" для каждого из проектов.

    Снимок экрана: диалоговое окно

  4. В верхней части Visual Studio щелкните зеленую стрелку.

    Снимок экрана: пользовательский интерфейс Visual Studio с указанным параметром

  5. На главном экране собственного приложения нажмите кнопку "Войти".

    Снимок экрана: диалоговое окно Список дел Список клиентов.

Если экран собственного приложения не отображается, выполните поиск и удаление *msalcache.bin файлов из папки, в которой репозиторий проекта сохраняется в системе.

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

    Снимок экрана: страница входа.

  2. После входа введите текстовое приложение Build Native App в веб-API в элементе Create a Список дел. Нажмите кнопку "Добавить элемент". Это вызовет службу списков Список дел (веб-API) и добавит элемент в кэш.

    Снимок экрана: диалоговое окно

Next Steps

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