2017-09-22 11 views
1

Web APIを呼び出し、Azureに対してoAuthコードの許可フローを使用するサンプルWebアプリケーションを作成しました.Ad.ApplicationがAzure ADに登録されており、Azureポータルから必要な権限を与えています。すべてが期待どおりに機能しているようです。Azure委任されたアプリケーションの優先順位

許可

  • 委任許可

  • アプリケーションの権限

ための2つのオプションは、それはあなたのためのアクセス許可セット(APP +デリゲート)のミックスの種類を使用することをお勧めしますがあります応用?

私はDelegateとApplicationの両方で自分のAPIに同様の種類のアクセス許可を与えていますが、どのアクセス許可が優先されますか?それはoAuthの流れに依存するでしょうか?コードの付与または暗黙のですか?

私のコードでは、同じリソースにアクセスしているときに、これらのアクセス権セットを区別することはできますか。ユーザーコンテキストで同じタイプのアプリケーションアクセス許可のみが既に存在しますか?

答えて

3

アプリケーションのアクセス許可と委任されたアクセス許可は互いに完全に独立しています。

アプリケーションのアクセス許可は、Client Credential Flow(App Only Flowとも呼ばれます)に従うときに適用されます。このフローに従うと、AADは、アプリ登録にあらかじめ定義されているアプリケーション権限に基づいてクライアントアプリケーションに権限を付与しようとします。これらのアクセス許可は、roleの申し立てのApp Only Tokenに表示されます。ユーザーが関与しているほぼすべての他のフローでは、

On-Behalf-OfAuthorization Code Grant FlowImplicit Grant Flow、等...)AAD、それは事前に定義された委任アクセス権に基づいて、クライアントに権限を付与しようとします。これらの権限は、 scp(範囲)クレームのApp + Userトークンに表示されます。

リソースへのアクセストークンを取得する際の認証方法を調整することで、アプリケーションのアクセス許可の種類を制御できます。

+0

ありがとうございます。あなたは、アプリケーションと委任されたアクセス権(Azureポータルの下)が相互排他的なタイプであるとお考えですか?User + App(許可フロー)の場合にazureポータルから両方のタイプのチェックボックスを適用する場合でも、 (ロール)をAzureバックエンドから取得します。フロータイプがUser-App(grant)の場合は、フロータイプに依存します。たとえば、フロータイプがUser + App(grant)の場合、委任チェックボックスのみ適用されます。アプリケーション許可のみを適用してください。 –

+2

"フロータイプがUser + App(grant)の場合、委任チェックボックスのみ適用されます。フローがアプリのみ(クライアントcred)の場合はアプリケーションのアクセス権のみが適用されます。 – Saca

+0

@sacaありがとう –

関連する問題