1

Azure にデプロイした API アプリがありますが、セキュリティで保護して、同じリソース グループ内の Logic Apps と Web Apps でのみ使用できるようにしたいと考えています。

Swashbuckleを介して追加された Swagger インターフェースには api_key パラメーターがあり、おそらく何らかの方法で活用できると思います。

Azure アプリと互換性のある方法でこのセキュリティを実現する方法について何か提案はありますか?

アズール AD

Azure AD を使用してこれを達成できると思いますか?

Azure AD アプリケーションを作成し、API アプリの [認証/承認] で Azure Active Directory (Express) を有効にし、作成したばかりの Azure AD アプリケーションを選択しました。

ロジック アプリから API アプリにアクセスしようとすると、次のエラーが表示されます。

闊歩を取得できませんでした。エンドポイントで CORS が有効になっており、HTTPS エンドポイントを呼び出していることを確認してください。

(Azure Active Directory を有効にする前は、このエラーは発生しませんでしたが、代わりにエンドポイントのリストが表示されました。)

次に考えたのは、Azure AD アプリケーションのマニフェスト ファイルを編集することでした。マニフェストでこれを見つけました

"knownClientApplications": []

だから私はロジックアプリのアプリケーション名をそのように追加しようとしました

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

しかし、文字列ではなく GUID が必要なため、これは拒否されました。残念ながら、ロジック アプリの GUID ID が見つからないようです。

4

1 に答える 1

0

これを達成する方法については、Azure のドキュメントを見つけました。

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

ロジック アプリの json コードを直接編集して認証要素を追加するなど、ちょっとしたプロセスが必要です。

{
    ...
    "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 呼び出しが原因でロジック アプリが失敗することでした。幸いなことに、この問題を回避する方法を説明している Jeff Hollan による有益なブログ投稿を見つけました。

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

私の要件に合わせたコード例をサポートしています。

https://github.com/jeffhollan/LogicAppsAsyncResponseSample

于 2016-06-17T02:36:40.427 に答える