問題タブ [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.

0 投票する
1 に答える
3405 参照

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 を言語として使用します。