Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется: Клиенты рабочей силы
Внешние клиенты (дополнительные сведения)
В этом кратком руководстве вы используете примерное веб-приложение, чтобы показать, как защитить веб-API ASP.NET с помощью платформы удостоверений Microsoft. В примере используется библиотека проверки подлинности Майкрософт (MSAL) для обработки проверки подлинности и авторизации.
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно.
- Зарегистрируйте новое приложение в Центре администрирования Microsoft Entra и запишите его идентификаторы на странице обзора приложения. Дополнительные сведения см. в разделе "Регистрация приложения".
- Имя: NewWebAPI1
- Поддерживаемые типы учетных записей: учетные записи в этом каталоге организации (только один клиент)
- Visual Studio 2022. Скачайте Visual Studio бесплатно.
После регистрации API можно настроить его разрешение, определив области, предоставляемые API клиентским приложениям. Клиентские приложения запрашивают разрешение на выполнение операций, передав маркер доступа вместе с его запросами к защищенному веб-API. Затем веб-API выполняет запрошенную операцию только в том случае, если полученный маркер доступа содержит необходимые области.
В разделе "Управление" выберите "Открыть API">"Добавить область". Примите предлагаемый URI идентификатора приложения (
api://{clientId}
) , выбрав "Сохранить и продолжить", а затем введите следующие сведения:- В поле "Имя области" введите
access_as_user
. - Для того, кто может предоставить согласие, убедитесь, что выбран параметр "Администраторы и пользователи ".
- В поле отображаемого имени согласия администратора введите
Access TodoListService as a user
. - В поле описания согласия администратора введите
Accesses the TodoListService web API as a user
. - В поле отображаемого имени согласия пользователя введите
Access TodoListService as a user
. - В поле описания согласия пользователя введите
Accesses the TodoListService web API as a user
. - Для состояния сохраните значение "Включено".
- В поле "Имя области" введите
Выберите «Добавить область».
Чтобы получить пример приложения, его можно клонировать из GitHub или скачать в виде файла.zip .
git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
Совет
Чтобы избежать ошибок, вызванных ограничениями длины пути в Windows, рекомендуется извлечь архив или клонировать репозиторий в каталог рядом с корнем диска.
Настройте пример кода для сопоставления зарегистрированного веб-API.
Откройте решение в Visual Studio и откройте файлappsettings.json в корне проекта TodoListService.
Замените значение
Enter_the_Application_Id_here
на идентификатор клиента (идентификатор приложения) из приложения, зарегистрированного в портале регистрации приложений, как в свойствахClientID
, так и в свойствахAudience
.
Чтобы добавить новую область в файл TodoListClient app.config , выполните следующие действия.
В корневой папке проекта TodoListClient откройте файл app.config .
Вставьте идентификатор приложения из приложения, зарегистрированного для проекта TodoListService, в параметре
TodoListServiceScope
, заменив строку{Enter the Application ID of your TodoListService from the app registration portal}
.
Примечание
Убедитесь, что идентификатор приложения использует следующий формат: api://{TodoListService-Application-ID}/access_as_user
(где {TodoListService-Application-ID}
— guid, представляющий идентификатор приложения для приложения TodoListService).
Зарегистрируйте приложение TodoListClient в регистрации приложений в Центре администрирования Microsoft Entra, а затем настройте код в проекте TodoListClient. Если клиент и сервер считаются одним и тем же приложением, можно повторно использовать приложение, зарегистрированное на шаге 2. Используйте то же приложение, если вы хотите, чтобы пользователи входить с помощью личной учетной записи Майкрософт.
Чтобы зарегистрировать приложение TodoListClient, выполните следующие действия.
Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.
Перейдите к идентификатор Entra>регистрации приложений и выберите Создать новую регистрацию.
Выберите "Создать регистрацию".
Когда откроется страница регистрации приложения , введите сведения о регистрации приложения:
- В разделе "Имя" введите понятное имя приложения, которое будет отображаться пользователям приложения (например, NativeClient-DotNet-TodoListClient).
- Для поддерживаемых типов учетных записей выберите "Учетные записи" в любом каталоге организации.
- Выберите "Зарегистрировать" , чтобы создать приложение.
Примечание
В проекте TodoListClient, в файле app.config, значение
ida:Tenant
по умолчанию установлено какcommon
. Возможные значения:-
common
: вы можете войти с помощью рабочей или учебной учетной записи или личной учетной записи Майкрософт (так как вы выбрали учетные записи в любом каталоге организации на предыдущем шаге). -
organizations
. Вы можете войти с помощью рабочей или учебной учетной записи. -
consumers
. Вы можете войти только с помощью личной учетной записи Майкрософт.
На странице обзора приложения выберите "Проверка подлинности", а затем выполните следующие действия, чтобы добавить платформу:
- В разделе "Конфигурации платформы" нажмите кнопку "Добавить платформу ".
- Для мобильных и настольных приложений выберите мобильные и настольные приложения.
- Для перенаправления URI выберите флажок
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Выберите "Настроить".
Выберите разрешения API, а затем выполните следующие действия, чтобы добавить разрешения:
- Нажмите кнопку "Добавить разрешение ".
- Перейдите на вкладку "Мои API".
- В списке API выберите AppModelv2-NativeClient-DotNet-TodoListService API или имя, введенное для веб-API.
- Установите флажок разрешения access_as_user, если он еще не выбран. При необходимости используйте поле поиска.
- Нажмите кнопку "Добавить разрешения ".
Настройте проект TodoListClient, добавив идентификатор приложения в файл app.config .
На портале регистрации приложений на странице Обзор скопируйте идентификатор приложения (клиента) .
В корневой папке проекта TodoListClient откройте файлapp.config и вставьте значение идентификатора приложения в
ida:ClientId
параметр.
Запустите оба проекта. Для пользователей Visual Studio;
Щелкните правой кнопкой мыши решение Visual Studio и выберите пункт "Свойства"
В разделе "Общие свойства" выберите "Запуск проекта " и " Несколько запускаемых проектов".
Для обоих проектов выберите "Пуск " в качестве действия
Убедитесь, что служба TodoListService начинается сначала, переместив ее на первую позицию в списке, используя стрелку вверх.
Войдите, чтобы запустить проект TodoListClient.
Нажмите клавишу F5, чтобы запустить проекты. Откроется страница службы, а также настольное приложение.
В todoListClient в правом верхнем углу выберите вход, а затем войдите с теми же учетными данными, которые вы использовали для регистрации приложения или входа в качестве пользователя в том же каталоге.
Если вы впервые вошли, вам может потребоваться предоставить согласие на веб-API TodoListService.
Чтобы получить доступ к веб-API TodoListService и управлять списком дел, вход также запрашивает токен доступа для области access_as_user.
Вы можете разрешить пользователям из других каталогов доступ к веб-API путем предварительной авторизации клиентского приложения для доступа к веб-API. Для этого добавьте идентификатор приложения из клиентского приложения в список предварительно санкционированных приложений для веб-API. Добавив предварительно настроенный клиент, вы разрешаете пользователям получать доступ к веб-API без предоставления согласия.
- На портале регистрации приложений откройте свойства приложения TodoListService.
- В разделе "Предоставление доступа к API" в разделе "Авторизованные клиентские приложения" выберите "Добавить клиентское приложение".
- В поле идентификатора клиента вставьте идентификатор приложения TodoListClient.
- В разделе "Авторизованные области" выберите область для
api://<Application ID>/access_as_user
веб-API. - Выберите "Добавить приложение".
- Нажмите клавишу F5 , чтобы запустить проект. Ваше приложение TodoListClient открывается.
- В правом верхнем углу выберите вход, а затем войдите с помощью личной учетной записи Майкрософт, например учетной записи live.com или hotmail.com учетной записи, рабочей или учебной учетной записи.
По умолчанию любые личные учетные записи, такие как outlook.com или live.com учетные записи, рабочие или учебные учетные записи из организаций, интегрированных с идентификатором Microsoft Entra, могут запрашивать маркеры и получать доступ к веб-API.
Чтобы указать, кто может войти в приложение, измените TenantId
свойство в файле appsettings.json .
Узнайте, как защитить веб-API ASP.NET Core с помощью платформы удостоверений Майкрософт.