問題タブ [service-principal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - 関数認証または Azure AD サービス プリンシパルを使用して Azure 関数に対して認証する方法
Azure AD からデータをフェッチするために使用している Azure 関数がありますが、後でロジック アプリから関数を呼び出せるように、HTTP トリガーを使用するため、関数を使用できるユーザーを制限したいと考えています。道を下って。HTTP でトリガーされる Azure Functions にはパブリック エンドポイントがあるため、承認レベルを Function に設定するか、Azure AD サービス プリンシパル (事前に作成されたもの) を使用することをお勧めします。この変更を行うと、関数を URL に入れることで呼び出しを行うことができます。
ベース URL:
https://something.com/api/function_name
トークン付きの URL:
https://something.com/api/function_name?code=token_here
ただし、私の関数は何らかの入力が与えられることを期待しています。匿名エンドポイントでは、次のようにベース URL を拡張します。
https://something.com/api/function_name/?parameter=value
パラメータはコードが期待するものであり、値はコード内の変数に渡されます。今、私はこの HTTP エンドポイントに不慣れで、URL を介して値を渡しています。これがJSONとして渡されることを理解しています(おそらく)
しかし、関数の承認とパラメーターの受け渡しの両方を行う方法がわかりません。私はもう試した:
これがどのように機能するか知っている人はいますか?
Platform Features -> Authentication / Authorization
反対に、 をAzure AD サービス プリンシパルに設定することもできます。しかし、そのサービス プリンシパルのclient_id
およびを使用して認証するように URL を変更するにはどうすればよいでしょうか。client_secret
トークンにライフサイクル管理を実装し、トークンをローテーションしてさらに安全に保つことができるため、実際にはこの方法を使用することをお勧めします。
私はここを見てきました: JavaScriptを使用したAzure AD認証アクセスを備えたAzure関数
そして、私がstackoverflowで見つけた他のほとんどのトピックは、近づくことさえできませんでした.
PS: この PS は回答を必要としませんが、ご意見をいただければ幸いです。私が作り上げているこのことは、Get-Function
. Get-Function
何らかの方法で をトリガーする必要がある場所Update-Function
。そしてGet-Function
、この関数を自動化に使用できるようにする API として提供できるように、HTTP をトリガーするようにしています。(Azure AD のアクセス許可を必要としない人がなくても、API 呼び出しを介してシークレットをローテーションできるようにするため) 更新機能は、(特定の) アプリケーション/サービス プリンシパルでシークレットをローテーションする必要があります。Azure 関数は v2 に基づいており、Powershell Core を言語として使用します。