Azure Portalでc#を使用して5つのAzure関数を記述しました。
以下は私のアプリケーションをインストールする手順です:-
上記のプロセスは、Customer Edgeノードで実行されます。
ここで説明する「 keys 」を使用した認証は、APIキー認証の別のレイヤーを提供するためのものであり、スクリプトが検出されるため、スクリプトがパブリッククライアント(エッジノードなど)によって呼び出される必要がある場合は適用できません。そこにできる。
私のシナリオでAzure Functionsを保護する最良の方法は何ですか?
デフォルトでは、Azure関数はパブリックです。したがって、それらをデプロイすると、エンドポイントは関数のアドレスを介して公開されます。先ほど触れたように、関数レベルのアクセスを設定できます。つまり、アクセスキーを渡す必要があります。保護されていれば親切です。
ただし、他にもいくつかのオプションがあります。
Azure環境サービスを使用して、vnet内に関数を構築できます。ただし、そのためには多額の費用がかかり、Azure関数のサービスプランバージョンを使用する必要があります。
API管理 と関数を組み合わせました。 API管理は、APIをコンシューマに公開する方法ですが、使用方法について多くの制御を維持します。 API管理コンポーネントは、Azureのパブリックアドレスの利用を妨げませんが、アプリ管理パススルーの一部としてhttp要求に追加される特別なトークンをチェックするコードにパターンを実装しました。または、FunctionアプリでIP制限を設定して、API管理エンドポイントからのトラフィックのみを許可することもできます。 (IPアドレス)したがって、事実上、アプリ管理を介してのみ機能にアクセスできます。
上記の注意点として、Azureポータルでは、標準機能のネットワークタブを介してIP制限を設定する機能が削除されました。したがって、リソースエクスプローラーに移動し、Web構成セクションでIP制限を手動で設定する必要があります。
最後に、oauthサーバーをセットアップし、関数またはAPI管理コンポーネント、あるいはその両方でトークンを検証できます。
Azure ASE(App Service Environment)は、5つの関数だけでは高すぎます。アプリケーションゲートウェイを追加して関数を保護し、関数にアプリケーションゲートウェイのIPアドレスをホワイトリストに登録できます。詳細については、こちらをご覧ください Azure Functionsのホワイトリスト
これはすべて、トークンベースまたはAADベースの認証と承認(前の返信で述べた「Noel」のような)に加えてです。