Azure API Management + Azure Функция и управляемая идентификация - PullRequest
3 голосов
/ 15 января 2020

Я пытаюсь вызвать функцию Azure из экземпляра API Management с помощью Managed Identity. Я установил управляемую идентификацию системы для своего экземпляра APIM. Я предоставил роль Участника этой личности в Azure Функциональном приложении. Я также изменил Аутентификацию службы приложений на AD.

Теперь я пытаюсь вызвать функцию из API.

У меня есть две проблемы:

  1. Первый: когда я использую политику аутентификации, управляемой идентификацией, чтобы получить токен, я получаю ошибку, когда использую аудиторию https://myfunctionapp.azurewebsites.net. AD сообщает мне, что это приложение не зарегистрировано в клиенте
  2. Во-вторых: если я получаю токен для https://management.azure.com, я получаю токен, но получаю 401 несанкционированную ошибку от Azure Функция.

Возможно, я просто пытаюсь получить токен не для той аудитории, но, к сожалению, аудитория функций не указана в документе (для сервисной шины, например, есть общий URI для использования, также для KeyVault, ...).

Я думаю, что, вероятно, что-то пропустил на картинке ... Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 января 2020

Необходимо использовать политику authentication-managed-identity для проверки подлинности с помощью бэкэнд-службы с использованием управляемого удостоверения службы управления API.

https://docs.microsoft.com/en-us/azure/api-management/api-management-authentication-policies#ManagedIdentity

РЕДАКТИРОВАТЬ

1-В вашем приложении APIM на Azure AD захватите идентификатор приложения, назначенный для корпоративного приложения.

2-Затем go для функций платформы в вашем Azure приложении функций и нажмите Аутентификация / Авторизация.

3-Выберите Azure Active Directory в качестве поставщика аутентификации и режим управления "express".

4-Вернитесь к политике аутентификации и управляемой идентификации, установите идентификатор приложения с шага 1 в качестве ресурса.

0 голосов
/ 25 января 2020

вам нужно добавить URL в необходимый ресурс apim. Если вы планируете использовать делегированный поток. Чтобы проверить, связана ли проблема с регистрацией URL, вы можете использовать вместо этого AppId. По крайней мере, это скажет вам, можно ли получить токен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...