2016-08-09 35 views
2

私は、Azure Active DirectoryでWeb APIリソースを保護する方法について悩んでいます。現在、ユーザーにAzure ADログインページをリダイレクトし、返されたid_tokenを受信する角度2のアプリがあります。このIDトークンは後続の呼び出しでベアラトークンとして使用され、動作しているようです。私の質問はここにあります。Windows Azure Active Directoryベアラ認証

public void ConfigureAuth(IAppBuilder app) 
    { 
     app.UseWindowsAzureActiveDirectoryBearerAuthentication(
      new WindowsAzureActiveDirectoryBearerAuthenticationOptions 
      { 
       TokenValidationParameters = new TokenValidationParameters 
       { 
        ValidAudience = ConfigurationManager.AppSettings["ida:ClientId"], 
        ValidateIssuer = true 
       }, 
       Tenant = ConfigurationManager.AppSettings["ida:TenantId"] 
      }); 
    } 

ここでは、ベアラトークンの検証を行っているようです。私が実際に理解していないことは、それがどのように機能するかです。すべてのAPIコールでAzure ADと通信していますか?もしそうなら、これは理想的なアプローチですか(パフォーマンスに関して)?もしそうでなければ、誰かが独自のトークンを作成してAPIにハッキングするのをどうやって止めるのでしょうか?

私はそれを理解するために欠けているいくつかの重要な知識があると確信しています。

ありがとうございます!

答えて

0

TokenValidationParametersで検証する属性を定義したり、独自のバリデータを実装するための通知を作成したりできます。あるいはイシュア(トークン内iss項)がテナントIDと一致する場合、ミドルウェアがチェックされます - イシュアが検証されることを意味する - もし上記のコードの場合に

ValidateIssuer = trueすると定義しました(たとえば、アプリケーションがテナントcontoso.comに登録されている場合、トークンが実際にテナントcontoso.comによって発行されたかどうかが検証されます) - 別のテナントによって生成されたトークンをブロックします。

ValidAudience = trueは、生成されたトークンが実際にアプリケーションに生成されたかどうかを検証するようにミドルウェアに指示します。だから毎回Azure ADと通信する必要はありません。

トークン検証のその他のオプションについては、MSDN articleを参照してください。

もトークンの検証についての素晴らしいポストの下を参照してください。

http://www.cloudidentity.com/blog/2014/03/03/principles-of-token-validation/

関連する問題