#azure #azure-logic-apps
#azure #azure-logic-apps
Вопрос:
Я создал логическое приложение, которое настроено для аутентификации с использованием AD Outh в соответствии с этим:
https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-securing-a-logic-app
Выполнение этого логического приложения занимает много времени, и чтобы избежать тайм-аута, ответ был настроен с использованием асинхронного шаблона, как указано в:
https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/async-operations
Аутентификация с использованием токена на предъявителя работает, и приложение Logic отвечает URL-адресом (в заголовке местоположения), в котором, наконец, будет сохранен ответ.
Проблема в том, что я не могу получить доступ к этому URL-адресу, потому что я получаю следующую ошибку:
{
"error": {
"code": "DirectApiAuthorizationRequired",
"message": "The request must be authenticated only by Shared Access scheme."
}
}
Проблема в том, что URL-адрес, возвращаемый в заголовке местоположения, содержит ключи SAS только при запуске приложения Logic с использованием SAS, и мне нужно использовать только OAuth по соображениям безопасности.
Теперь, если попытаться получить доступ к этому URL-адресу с помощью токена-носителя, ответ:
{
"error": {
"code": "InvalidUseOfOAuthToken",
"message": "The requested operation is not supported, Use of open authentication token is only supported for workflow trigger request."
}
}
Вот пример URL-адреса:
Итак, понимая, что невозможно получить доступ к этому URL-адресу с помощью OAuth, как я могу заставить местоположение заголовка включать параметры SAS, используя логическое приложение с помощью OAuth?
Ответ №1:
Наконец, предлагаемое решение заключалось в использовании функции «Создание истекающих URL-адресов обратного вызова» для приложений асинхронной логики,
Это состоит в создании временного URL-адреса для каждого выполнения, эти URL-адреса содержат параметр SAS, который будет указывать дату. Эти URL-адреса создаются из вызова API ARM Rest с использованием токена на предъявителя и указанием даты, с которой он перестанет работать. Таким образом, нет проблем с использованием SAS, поскольку они временные.
https://docs.microsoft.com/en-us/rest/api/logic/workflowversions/listcallbackurl