Вызов функции Azure из ADF с помощью MSI

Я пытаюсь вызвать приложение-функцию из ADF с помощью MSI. Я включил управляемую идентификацию для ADF, а также включил аутентификацию / авторизацию AAD для приложения Function.

введите описание изображения здесь

Теперь, когда я делаю веб-вызов из ADF (с базовой спецификацией)

введите описание изображения здесь

Я получаю следующую ошибку.

введите описание изображения здесь

Я даже добавил ADF в качестве разработчика приложения-функции. Я, должно быть, что-то упускаю, но не знаю, что именно


comment
AAD функции может оценивать MSI ADF. Чтобы проверить функцию в приложении FunctionApp, перейдите к Function Keys, если его нет, добавьте новый. В противном случае скопируйте ключ и создайте URL-адрес в ADF как https://<funtionapp>.azurewebsites.net/api/<function>?code=<code>   -  person koushik    schedule 02.03.2021
comment
Спасибо за ваш вклад @koushik. Это действительно может сработать, но цель состоит в том, чтобы обеспечить безопасную интеграцию без использования / раскрытия ключей. Следовательно, ищу что-то, что позволит аутентифицироваться через MSI.   -  person LoniF    schedule 03.03.2021
comment
@JosephXu, да, они такие! Ясно, что я чего-то упускаю. не могли бы вы поделиться шагами ... это будет очень полезно. Тогда я могу попробовать   -  person LoniF    schedule 03.03.2021


Ответы (1)


Прежде всего, убедитесь, что вы выбрали _ 1_, когда вы настраиваете приложение-функцию с аутентификацией Azure AD, то azure выполнит все настройки за вас автоматически, это уменьшит ненужные проблемы. Также не забудьте установить Authorization level вашей функции на Anonymous, потому что мы настроили приложение-функцию с аутентификацией Azure AD.

В вашем случае ошибка была вызвана неправильным Resource, это должен быть Application ID URI приложения AD, соответствующий приложению-функции, то есть https://<functionapp-name>.azurewebsites.net (это настраивается azure автоматически, когда вы выбираете Create New AD App, как указано выше).

Кроме того, вы должны отметить, что если вы просто выполните описанные выше шаги, все участники службы (MSI по сути является субъектом службы) / пользователи в вашем клиенте AAD могут получить доступ к приложению-функции, если вы просто хотите, чтобы MSI для доступа к приложению-функции, тогда вам нужно использовать роль приложения Azure AD, подробности я опубликовал здесь, если вы не возражаете, просто проигнорируйте шаг 2 и шаг 3, он также будет работать.

person Joy Wang    schedule 04.03.2021
comment
спасибо за помощь в этом. Это действительно решило проблему. Ошибка была неправильным ресурсом. После замены на https://<functionapp-name>.azurewebsites.net заработало отлично! - person LoniF; 04.03.2021