Прочитать на английском

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


Быстрый старт: Вызов веб-API, защищенного платформой идентификации Microsoft

Применяется: зеленый круг с символом белой галочки. Клиенты рабочей силы зеленый круг с символом белой галочки. Внешние клиенты (дополнительные сведения)

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

Предпосылки

Сделать API доступным

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

  1. В разделе "Управление" выберите "Открыть API">"Добавить область". Примите предлагаемый URI идентификатора приложения (api://{clientId}) , выбрав "Сохранить и продолжить", а затем введите следующие сведения:

    1. В поле "Имя области" введите access_as_user.
    2. Для того, кто может предоставить согласие, убедитесь, что выбран параметр "Администраторы и пользователи ".
    3. В поле отображаемого имени согласия администратора введите Access TodoListService as a user.
    4. В поле описания согласия администратора введите Accesses the TodoListService web API as a user.
    5. В поле отображаемого имени согласия пользователя введите Access TodoListService as a user.
    6. В поле описания согласия пользователя введите Accesses the TodoListService web API as a user.
    7. Для состояния сохраните значение "Включено".
  2. Выберите «Добавить область».

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

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

git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git

Совет

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

Настройка примера приложения

Настройте пример кода для сопоставления зарегистрированного веб-API.

  1. Откройте решение в Visual Studio и откройте файлappsettings.json в корне проекта TodoListService.

  2. Замените значение Enter_the_Application_Id_here на идентификатор клиента (идентификатор приложения) из приложения, зарегистрированного в портале регистрации приложений, как в свойствах ClientID, так и в свойствах Audience.

Добавление новой области в файл app.config

Чтобы добавить новую область в файл TodoListClient app.config , выполните следующие действия.

  1. В корневой папке проекта TodoListClient откройте файл app.config .

  2. Вставьте идентификатор приложения из приложения, зарегистрированного для проекта 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)

Зарегистрируйте приложение TodoListClient в регистрации приложений в Центре администрирования Microsoft Entra, а затем настройте код в проекте TodoListClient. Если клиент и сервер считаются одним и тем же приложением, можно повторно использовать приложение, зарегистрированное на шаге 2. Используйте то же приложение, если вы хотите, чтобы пользователи входить с помощью личной учетной записи Майкрософт.

Регистрация приложения

Чтобы зарегистрировать приложение TodoListClient, выполните следующие действия.

  1. Войдите в Центр администрирования Microsoft Entra как минимум администратор облачных приложений.

  2. Перейдите к идентификатор Entra>регистрации приложений и выберите Создать новую регистрацию.

  3. Выберите "Создать регистрацию".

  4. Когда откроется страница регистрации приложения , введите сведения о регистрации приложения:

    1. В разделе "Имя" введите понятное имя приложения, которое будет отображаться пользователям приложения (например, NativeClient-DotNet-TodoListClient).
    2. Для поддерживаемых типов учетных записей выберите "Учетные записи" в любом каталоге организации.
    3. Выберите "Зарегистрировать" , чтобы создать приложение.

    Примечание

    В проекте TodoListClient, в файле app.config, значение ida:Tenant по умолчанию установлено как common. Возможные значения:

    • common: вы можете войти с помощью рабочей или учебной учетной записи или личной учетной записи Майкрософт (так как вы выбрали учетные записи в любом каталоге организации на предыдущем шаге).
    • organizations. Вы можете войти с помощью рабочей или учебной учетной записи.
    • consumers. Вы можете войти только с помощью личной учетной записи Майкрософт.
  5. На странице обзора приложения выберите "Проверка подлинности", а затем выполните следующие действия, чтобы добавить платформу:

    1. В разделе "Конфигурации платформы" нажмите кнопку "Добавить платформу ".
    2. Для мобильных и настольных приложений выберите мобильные и настольные приложения.
    3. Для перенаправления URI выберите флажок https://login.microsoftonline.com/common/oauth2/nativeclient.
    4. Выберите "Настроить".
  6. Выберите разрешения API, а затем выполните следующие действия, чтобы добавить разрешения:

    1. Нажмите кнопку "Добавить разрешение ".
    2. Перейдите на вкладку "Мои API".
    3. В списке API выберите AppModelv2-NativeClient-DotNet-TodoListService API или имя, введенное для веб-API.
    4. Установите флажок разрешения access_as_user, если он еще не выбран. При необходимости используйте поле поиска.
    5. Нажмите кнопку "Добавить разрешения ".

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

Настройте проект TodoListClient, добавив идентификатор приложения в файл app.config .

  1. На портале регистрации приложений на странице Обзор скопируйте идентификатор приложения (клиента) .

  2. В корневой папке проекта TodoListClient откройте файлapp.config и вставьте значение идентификатора приложения в ida:ClientId параметр.

Запуск примера приложения

Запустите оба проекта. Для пользователей Visual Studio;

  1. Щелкните правой кнопкой мыши решение Visual Studio и выберите пункт "Свойства"

  2. В разделе "Общие свойства" выберите "Запуск проекта " и " Несколько запускаемых проектов".

  3. Для обоих проектов выберите "Пуск " в качестве действия

  4. Убедитесь, что служба TodoListService начинается сначала, переместив ее на первую позицию в списке, используя стрелку вверх.

Войдите, чтобы запустить проект TodoListClient.

  1. Нажмите клавишу F5, чтобы запустить проекты. Откроется страница службы, а также настольное приложение.

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

    Если вы впервые вошли, вам может потребоваться предоставить согласие на веб-API TodoListService.

    Чтобы получить доступ к веб-API TodoListService и управлять списком дел, вход также запрашивает токен доступа для области access_as_user.

Предварительная авторизация клиентского приложения

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

  1. На портале регистрации приложений откройте свойства приложения TodoListService.
  2. В разделе "Предоставление доступа к API" в разделе "Авторизованные клиентские приложения" выберите "Добавить клиентское приложение".
  3. В поле идентификатора клиента вставьте идентификатор приложения TodoListClient.
  4. В разделе "Авторизованные области" выберите область для api://<Application ID>/access_as_user веб-API.
  5. Выберите "Добавить приложение".

Запуск проекта

  1. Нажмите клавишу F5 , чтобы запустить проект. Ваше приложение TodoListClient открывается.
  2. В правом верхнем углу выберите вход, а затем войдите с помощью личной учетной записи Майкрософт, например учетной записи live.com или hotmail.com учетной записи, рабочей или учебной учетной записи.

Необязательно. Ограничение доступа к входу определенным пользователям

По умолчанию любые личные учетные записи, такие как outlook.com или live.com учетные записи, рабочие или учебные учетные записи из организаций, интегрированных с идентификатором Microsoft Entra, могут запрашивать маркеры и получать доступ к веб-API.

Чтобы указать, кто может войти в приложение, измените TenantId свойство в файле appsettings.json .

Дальнейшие действия

Узнайте, как защитить веб-API ASP.NET Core с помощью платформы удостоверений Майкрософт.