1

У меня есть приложение API, которое я развернул для Azure, но хочу, чтобы он был защищен, поэтому он доступен только для приложений Logic и веб-приложений в той же группе ресурсов.Azure - приложение Secure API, доступное только для приложений Logic и веб-приложений

Интерфейс Swagger, добавленный через Swashbuckle, имеет параметр api_key. Предполагаю, что я могу каким-то образом использовать.

Любые предложения о том, как я могу достичь этой безопасности способом, совместимым с приложениями Azure?

Azure AD

Я подозреваю, что я должен быть в состоянии достичь этого с помощью Azure AD?

Я создал приложение Azure AD, а затем в приложении API под Аутентификация/авторизация. Я включил Azure Active Directory (Express) и выбрал приложение Azure AD, которое я только что создал.

Теперь, когда я пытаюсь получить доступ к API приложения от логики приложения, я получаю следующее сообщение об ошибке:

Failed to fetch swagger. Ensure you have CORS enabled on the endpoint and are calling an HTTPS endpoint.

(Перед включением Azure Active Directory я не получаю эту ошибку, я вижу мой список конечных точек.)

Следующей мыслью было изменить файл манифеста для приложения Azure AD. Я заметил это в проявленном

"knownClientApplications": [] 

поэтому я попробовал добавлять мою логику App имя приложения, как так

"knownClientApplications": [ "my-logic-app-name" ] 

, но это было отклонен, поскольку он ожидает GUID вместо строки. К сожалению, я не могу найти идентификатор guid для моего приложения Logic.

ответ

0

Я нашел Azure документации о том, как достичь этого:

https://azure.microsoft.com/en-us/documentation/articles/app-service-logic-custom-hosted-api/

Немного процесса вовлеченного который включал редактирование коды JSon Logic App непосредственно добавить в элементах аутентификации, например,

{ 
    ... 
    "actions": { 
     "SomeAction": { 
      "conditions": [], 
      "inputs": { 
       "method": "post", 
       "uri": "https://your-api.azurewebsites.net/api/YourMethod", 
       "authentication": { 
        "tenant": "the-guid-for-your-tenant", 
        "audience": "the-guid-for-apiapp-azure-ad-application", 
        "clientId": "the-guid-for-logicapp-azure-ad-application", 
        "secret": "the-secret-for-logicapp-azure-ad-application", 
        "type": "ActiveDirectoryOAuth" 
       } 
      }, 
      ... 

Следующая проблема, с которой я столкнулся, - это длительные вызовы API, вызывающие сбои приложения Logic. К счастью, я нашел этот информативный пост в блоге Джеффа Холлан объяснившую, как обойти вопрос:

https://blogs.msdn.microsoft.com/logicapps/2016/02/15/long-running-tasks-in-logic-apps/

с поддержкой пример кода, который я адаптированной к моим требованиям:

https://github.com/jeffhollan/LogicAppsAsyncResponseSample

 Смежные вопросы

  • Нет связанных вопросов^_^