Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Базовый | Стандартный | Премия
Теперь управление API поддерживает встроенный доступ на основе приложений OAuth 2.0 к API продукта с помощью потока учетных данных клиента. Эта функция позволяет менеджерам API регистрировать приложения идентификатора Microsoft Entra, упрощая безопасный доступ к API для разработчиков с помощью авторизации OAuth 2.0.
Замечание
В настоящее время приложения находятся в ограниченной предварительной версии. Чтобы зарегистрироваться, заполните эту форму.
С помощью этой функции:
- Диспетчеры API устанавливают свойство продукта для включения доступа на основе приложений.
- Диспетчеры API регистрируют клиентские приложения в идентификаторе Microsoft Entra, чтобы ограничить доступ к определенным продуктам.
- Разработчики могут получить доступ к учетным данным клиентского приложения с помощью портала разработчика службы "Управление API".
- Используя поток учетных данных клиента OAuth 2.0, разработчики или приложения могут получать токены, которые они включают в запросы API.
- Токены, представленные в запросах API, проверяются шлюзом управления API для авторизации доступа к API продукта.
Предпосылки
Экземпляр управления API, развернутый на уровне "Премиум", "Стандартный", "Базовый" или "Разработчик". Если необходимо развернуть экземпляр службы, см. раздел "Создание экземпляра службы управления API".
По крайней мере один продукт в экземпляре службы "Управление API", оснащённый хотя бы одним назначенным ему API.
- Продукт должен находиться в состоянии публикации , чтобы его могли получить разработчики на портале разработчиков.
- Для тестирования можно использовать начальный продукт по умолчанию и API эхо , добавленный в него.
- Если вы хотите создать продукт, см. статью "Создание и публикация продукта".
Достаточно разрешений в клиенте Microsoft Entra, чтобы назначить роль администратора приложений , для которой требуется по крайней мере роль администратора привилегированных ролей .
При необходимости добавьте одного или нескольких пользователей в экземпляр управления API.
- Если вы решили использовать Azure PowerShell локально:
- Установите последнюю версию модуля Az PowerShell.
- Подключитесь к учетной записи Azure с помощью командлета Connect-AzAccount.
- Если вы решили использовать Azure Cloud Shell:
- Дополнительные сведения см. в статье Общие сведения об Azure Cloud Shell.
Настройка управляемого удостоверения
Включите систему управляемого удостоверения для управления API в вашей системе управления API.
Назначьте идентичность на роль администратора приложения RBAC в Microsoft Entra ID. Чтобы назначить роль, выполните следующие действия.
- Войдите на портал и перейдите к идентификатору Microsoft Entra.
- В меню слева выберите "Управление>ролями и администраторами".
- Выберите администратора приложения.
- В меню слева выберите "Управление>назначениями>и добавлением назначений".
- На странице Добавление назначений найдите управляемое удостоверение экземпляра API Management по его имени (имя экземпляра API Management). Выберите управляемое удостоверение и нажмите кнопку "Добавить".
Включение доступа через приложение для продукта
Выполните следующие действия, чтобы включить доступ на основе приложений для продукта. Продукт должен иметь этот параметр, чтобы он был связан с клиентским приложением в последующих шагах.
В следующем примере используется начальный продукт, но выберите любой опубликованный продукт, имеющий по крайней мере один API, назначенный ему.
- Войдите на портал по следующему пользовательскому URL-адресу функции приложений: https://portal.azure.com/?feature.customPortal=false& Microsoft_Azure_ApiManagement=приложения
- Перейдите к вашему экземпляру управления API.
- В меню слева в разделе API выберите "Продукты".
- Выберите продукт, который требуется настроить, например начальный продукт.
- В меню слева в разделе "Продукт" выберите "Свойства".
- В разделе доступа на основе приложений включите параметр маркера OAuth 2.0 (наиболее безопасный).
- При необходимости включите параметр ключа подписки . Если включить доступ на основе приложений и требование подписки, шлюз управления API может принять маркер OAuth 2.0 или ключ подписки для доступа к API продукта.
- Нажмите кнопку "Сохранить".
Подсказка
Вы также можете включить параметр маркера OAuth 2.0 при создании нового продукта.
Включение доступа на основе приложений создает корпоративное серверное приложение в Microsoft Entra ID для репрезентации продукта. Идентификатор внутреннего приложения отображается на странице свойств продукта.
Замечание
Этот идентификатор приложения задается как значение аудитории при создании клиентского приложения для доступа к продукту. Также используйте это значение при создании маркера для вызова API продукта.
(Необязательно) Просмотр параметров приложения продукта в Microsoft Entra ID
При необходимости просмотрите параметры серверного корпоративного приложения, созданного в идентификаторе Microsoft Entra, чтобы представить продукт.
Приложение называется следующим форматом: APIMProductApplication<product-name>. Например, если имя продукта — Starter, то имя приложения — APIMProductApplicationStarter. Приложение имеет определенную роль приложения .
Чтобы просмотреть параметры приложения в регистрации приложений, выполните следующие действия.
- Войдите на портал и перейдите к Microsoft Entra ID>Управление>регистрации приложений.
- Выберите все приложения.
- Найдите и выберите приложение, созданное службой управления API.
- В меню слева в разделе "Управление" выберите роли приложения.
- Убедитесь, что роль приложения, заданная управлением API Azure, как показано на следующем снимке экрана:
Регистрация клиентского приложения для доступа к продукту
Теперь зарегистрируйте клиентское приложение, которое ограничивает доступ к одному или нескольким продуктам.
- Продукт должен иметь доступ на основе приложений для связи с клиентским приложением.
- Каждое клиентское приложение имеет одного пользователя (владельца) в экземпляре службы управления API. Только владелец может получить доступ к API продукта через приложение.
- Продукт может быть связан с несколькими клиентскими приложениями.
Чтобы зарегистрировать клиентское приложение, выполните действия.
Войдите на портал по следующему пользовательскому URL-адресу функции приложений: https://portal.azure.com/?feature.customPortal=false& Microsoft_Azure_ApiManagement=приложения
Перейдите к вашему экземпляру управления API.
В меню слева в разделе API выберите "Приложения>+ Регистрация приложения".
На странице регистрации приложения введите следующие параметры приложения:
- Имя — введите имя приложения.
- Владелец: выберите владельца приложения из раскрывающегося списка пользователей в экземпляре управления API.
- Предоставление доступа к выбранным продуктам: выберите один или несколько продуктов в экземпляре управления API, которые ранее были включены для доступа на основе приложений.
- Описание. При необходимости введите описание.
Выберите Зарегистрировать.
Приложение добавляется в список приложений на странице "Приложения ". Выберите приложение для просмотра сведений, таких как идентификатор клиента. Вам нужен этот идентификатор, чтобы создать токен для вызова API продукта.
Подсказка
- После создания приложения при необходимости свяжите его с другими продуктами. Выберите приложение на странице "Приложения" , а затем выберите "Сведения о>продуктах>+ Добавить продукт".
- Вы также можете создать или связать приложение, изменив продукт на странице "Продукты ".
Создание секрета клиента
Для использования потока учетных данных клиента OAuth 2.0 необходимо создать секрет клиента. Секрет действителен в течение одного года, но может быть повторно создан в любое время.
На странице "Приложения" выберите созданное приложение.
На странице обзора приложения рядом с секретом клиента выберите "Добавить секрет".
На странице "Создать секрет клиента" выберите "Создать".
Секрет клиента создается и отображается в поле секрета клиента . Обязательно скопируйте значение секрета и сохраните его безопасно. Вы не сможете снова получить его после закрытия страницы.
Выберите Закрыть.
(Необязательно) Проверка параметров клиентского приложения в идентификаторе Microsoft Entra
При необходимости просмотрите параметры клиентского приложения в идентификаторе Microsoft Entra.
Приложение называется следующим форматом: APIMApplication<product-name>. Например, если имя продукта — Starter, имя приложения похоже на APIMApplicationStarter.
Чтобы просмотреть параметры приложения в регистрации приложений, выполните следующие действия.
Войдите на портал и перейдите к Microsoft Entra ID>Управление>регистрации приложений.
Выберите все приложения.
Найдите и выберите клиентское приложение, созданное управлением API.
В меню слева в разделе "Управление" выберите разрешения API.
Убедитесь, что у приложения есть разрешения на доступ к внутреннему приложению или приложениям продукта.
Например, если клиентское приложение предоставляет доступ к продукту Starter , приложение имеет разрешения Product.Starter.All для доступа к приложению APIMProductApplicationStarter .
Получение параметров приложения на портале разработчика
Пользователи могут войти на портал разработчика, чтобы просмотреть клиентские приложения, принадлежащие им.
Войдите на портал разработчика (
https://<your-apim-instance-name>.developer.azure-api.net) с помощью учетной записи пользователя, которая была задана как владелец клиентского приложения.В верхнем меню навигации выберите "Приложения".
Приложения, принадлежащие пользователю, отображаются в списке.
Выберите приложение для просмотра сведений, таких как идентификатор клиента, секрет клиента и область. Эти значения необходимы для генерации токена для вызова API продукта.
Создайте маркер и используйте при вызове API
После включения доступа на основе приложений для продукта и регистрации клиентского приложения разработчик или приложение может создать маркер для вызова API продукта. Маркер должен быть включён в Authorization заголовок запроса.
Например, разработчик или приложение может запустить следующие скрипты Azure PowerShell для вызова клиентского приложения для создания маркера, а затем использовать маркер для вызова API продукта в службе управления API.
Осторожность
Ниже приведены примеры только для тестирования. В рабочей среде используйте безопасный метод для хранения и извлечения секрета клиента.
Вызов клиентского приложения для генерации токена
# Replace placeholder values with your own values.
$clientId = "00001111-aaaa-2222-bbbb-3333cccc4444" # Client (application) ID of client application
$clientSecret = "******" # Retrieve secret of client application in developer portal
$scopeOfOtherApp = "api://55556666-ffff-7777-aaaa-8888bbbb9999/.default" # Value of Audience in product properties
$tenantId = "aaaabbbb-0000-cccc-1111-dddd2222eeee" # Directory (tenant) ID in Microsoft Entra ID
$body = @{
grant_type = "client_credentials"
client_id = $clientId
client_secret = $clientSecret
scope = $scopeOfOtherApp
}
$response = Invoke-RestMethod -Method Post -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" -ContentType "application/x-www-form-urlencoded" -Body $body
$token = $response.access_token
Вызов продуктового API с помощью токена
Маркер, созданный на предыдущем шаге, используется для вызова API продукта. Маркер передается в заголовке авторизации запроса. Инстанс управления API проверяет токен и разрешает доступ к API.
В следующем скрипте показан пример вызова API эхо.
# Gatewate endpoint to call. Update with URI of API operation you want to call.
$uri = "https://<gateway-hostname>/echo/resource?param1=sample"
$headers = @{
"Authorization" = "Bearer $token" # $token is the token generated in the previous script.
}
$body = @{
"hello" = "world"
} | ConvertTo-Json -Depth 5
$getresponse = Invoke-RestMethod -Method Post -Uri $uri -ContentType "application/x-www-form-urlencoded" -Headers $headers -Body $body
Write-Host "Response:"
$getresponse | ConvertTo-Json -Depth 5
Устранение неполадок
Внутренняя ошибка сервера при регистрации приложений на портале
Если вы не можете перечислить приложения или при регистрации приложений на портале возникает внутренняя ошибка сервера, проверьте следующее:
- Роль администратора приложений назначена управляемой идентичности экземпляра управления API в Microsoft Entra ID.
- Вы вошли на портал по следующему пользовательскому URL-адресу для функции приложений: https://portal.azure.com/?feature.customPortal=false& Microsoft_Azure_ApiManagement=приложения. Этот URL-адрес необходим для доступа к функциям приложений в службе управления API.