Сценарий. Вызов веб-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
В ad FS Management щелкните правой кнопкой мыши группы приложений и выберите "Добавить группу приложений".
В мастере группы приложений для имени введите NativeAppToWebApi и в разделе "Клиентский сервер" выберите собственное приложение, обращающееся к шаблону веб-API. Нажмите кнопку Далее.
Скопируйте значение идентификатора клиента. Он будет использоваться позже в качестве значения ClientId в файле app.config приложения. Введите следующий код ресурса (URI) перенаправления:https://ToDoListClient. Нажмите кнопку Добавить. Нажмите кнопку Далее.
На экране "Настройка веб-API" введите идентификатор:https://localhost:44321/. Нажмите кнопку Добавить. Нажмите кнопку Далее. Это значение будет использоваться позже в файлах App.config и Web.config приложения.
На экране "Применить контроль доступа политика" нажмите кнопку "Разрешить всем" и нажмите кнопку "Далее".
На экране "Настройка разрешений приложения" убедитесь, что выбран открытый идентификатор и нажмите кнопку "Далее".
На экране "Сводка" нажмите кнопку "Далее".
На экране "Завершить" нажмите кнопку "Закрыть".
В службе управления AD FS щелкните группы приложений и выберите группу приложений NativeAppToWebApi . Щелкните его правой кнопкой мыши и выберите Свойства.
На экране свойств NativeAppToWebApi выберите NativeAppToWebApi — веб-API в веб-API и нажмите кнопку "Изменить".
На экране "Свойства веб-API" в NativeAppToWebApi выберите вкладку "Правила преобразования выдачи" и нажмите кнопку "Добавить правило".
В мастере добавления правила утверждения преобразования выберите "Преобразовать входящее утверждение " из шаблона правила утверждения: раскрывающийся список и нажмите кнопку "Далее".
Введите NameID в имя правила утверждения: поле. Выберите имя для типа входящего утверждения:, идентификатор имени для типа исходящих утверждений: и формат идентификатора исходящего имени:. Нажмите кнопку " Готово".
Нажмите кнопку "ОК" на экране "Свойства веб-API NativeAppToWebApi" и экран свойств NativeAppToWebApi.
Конфигурация кода
В этом разделе показано, как настроить собственное приложение для входа пользователя и получения маркера для вызова веб-API
Скачайте пример из этой страницы
Открытие примера с помощью Visual Studio
Откройте файл 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 выше.
Откройте файл web.config. Измените следующее:
ida:Audience — введите значение идентификатора из #4 в разделе "Регистрация приложений" в разделе AD FS выше
ida: AdfsMetadataEndpoint — ввод
https://[your AD FS hostname]/federationmetadata/2007-06/federationmetadata.xml
Тестирование примера
В этом разделе показано, как протестировать пример, настроенный выше.
После внесения изменений в код решения
В Visual Studio щелкните правой кнопкой мыши решение и выберите " Задать начальные проекты" ...
На страницах свойств убедитесь, что для каждого проекта задано значение "Пуск" для каждого из проектов.
В верхней части Visual Studio щелкните зеленую стрелку.
На главном экране собственного приложения нажмите кнопку "Войти".
Если экран собственного приложения не отображается, выполните поиск и удаление *msalcache.bin
файлов из папки, в которой репозиторий проекта сохраняется в системе.
Вы будете перенаправляться на страницу входа AD FS. Выполните вход.
После входа введите текстовое приложение Build Native App в веб-API в элементе Create a Список дел. Нажмите кнопку "Добавить элемент". Это вызовет службу списков Список дел (веб-API) и добавит элемент в кэш.
Next Steps
Подключения AD FS OpenID или потоки OAuth и сценарии использования приложений