Проверка подлинности из приложения логики Azure в функцию Azure с использованием управляемого удостоверения - PullRequest
2 голосов
/ 18 апреля 2019

Я пытаюсь настроить безопасность приложения логики и функции Azure. Функция Azure имеет триггер HTTP. До сих пор я сделал следующее:

  1. Создана функция Azure с некоторыми основными функциями (написать запрос в запросе в журнал).
  2. Создано приложение логики (триггер повторения, HTTP для запуска функции Azure)
  3. Протестировано, что приложение логики успешно вызывает функцию Azure
  4. Добавлена ​​управляемая идентификация в приложение логики
  5. Включила аутентификацию / авторизацию Azure AD в приложении-функции Azure и использовала экспресс-настройку, которая создала регистрацию приложения в Azure AD для приложения-функции.
  6. Добавлена ​​управляемая идентификация в качестве метода аутентификации в действии HTTP в приложении логики.

Когда я запускаю приложение логики, оно показывает, что действие HTTP не выполняется, потому что оно неавторизовано. Кто-нибудь может сказать мне, что мне не хватает? Я нашел несколько учебных пособий о том, как получить доступ к KeyVault (например) с использованием аналогичного подхода, но ничего для функции Azure. Я чувствую, что мне нужно сообщить Регистрации приложения, что у Управляемого удостоверения для приложения логики есть разрешения, но я не знаю, правильно ли это, и как это сделать.

1 Ответ

4 голосов
/ 18 апреля 2019

Когда я запускаю приложение логики, оно показывает, что действие HTTP завершается неудачно, потому что оно не авторизовано.Может кто-нибудь сказать мне, что мне не хватает?

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

Я быстро опробовал логическое приложение с управляемой идентификацией, например, настройку для вызова функции Azure с включенной аутентификацией Azure AD.Ниже приведены подробные действия.

  1. Добавьте HTTP-действие в ваше приложение логики, которое будет использоваться для вызова вашей функции Azure
  2. В моем случае это был простой вызов GETс URL-адресом, таким как https://<myfunctionapp>.azurewebsites.net/api/simplefunction
  3. В поле Аутентификация выберите Managed Identity
  4. Затем добавьте новый параметр и установите флажок Audience

    enter image description here

  5. Измените значение параметра Audience на URI идентификатора приложения для регистрации приложения Azure AD вашего функционального приложения.В моем случае это значение выглядело как https://<myazureadtenant>.onmicrosoft.com/GUID

    Это значение URI идентификатора приложения можно найти на портале Azure> Azure AD> Регистрация приложений> Регистрация для приложения-функции> Настройки> Свойства

    enter image description here

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

Вот как выглядит полное действие HTTP в моем случае.

enter image description here

Далее, после того, как базовый вызов из приложения логики (с управляемой идентификацией) к вашей функции Azure проходит аутентификацию должным образом, возникает вопрос, должно ли какое-либо приложение иметь возможность вызывать вашу функцию Azure или разрешать только определенным абонентам с определенными разрешениями.

Я подробно ответил на эту часть с помощью двух подходов в этой публикации SO - Есть ли способ защитить функцию Azure, которая будет вызываться только из определенного приложения логики Azure? .Второй подход в этом ответе очень декларативен, и вы даже можете создать несколько разных ролей приложений для разных типов абонентов, если это необходимо для вашей функции.

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