2016-08-18 15 views
0

次のJWTミドルウェアを使用して、有効なJWTを持つすべてのコントローラーを承認し、期待どおりに動作しています。私は、コントローラの1つでクライアント証明書ベースの許可を有効にする必要があります。私は、新しいミドルウェアを作成し、クライアント証明書を検証するowinパイプラインにプラグインできることを理解しています。asp.net web APIのコントローラーあたりのOwinミドルウェア

どのコントローラをどのミドルウェアで使用するかを決めるにはどうすればいいですか?私の知る限り、OWINはコントローラの知識は持っていません。ご提案ください

public void ConfigureAuth(IAppBuilder app) 
    { 
     TextEncodings.Base64Url.Decode("IxrAjDoa2FqElO7IhrSrUJELhUckePEPVpaePlS_Xaw"); 

     var issuer = System.Configuration.ConfigurationManager.AppSettings["issuer"].ToString(); 
     var audience = System.Configuration.ConfigurationManager.AppSettings["ClientID"].ToString(); 
     var secret = TextEncodings.Base64Url.Decode(System.Configuration.ConfigurationManager.AppSettings["ClientSecret"].ToString()); 
     // Api controllers with an [Authorize] attribute will be validated with JWT 
     app.UseJwtBearerAuthentication(
      new JwtBearerAuthenticationOptions 
      { 
       AuthenticationMode = AuthenticationMode.Active, 
       AllowedAudiences = new[] { audience }, 
       IssuerSecurityTokenProviders = new IIssuerSecurityTokenProvider[] 
       { 
        new SymmetricKeyIssuerSecurityTokenProvider(issuer, secret), 

       }     
      }); 

    } 

答えて

0

オーリンは、その上に[Authorize]タグが付いているため、どのコントローラを承認するかを "知っています"。

他のシステムで同じことをしないのはなぜですか?もう一方の認証システムを起動する別のタグを作成しますか?これはクリーンなシステムを動作させる最も簡単な方法です。

あなたは何かインスピレーションを得て、正確に何が行われているかを知るために、より多くの場合、owinソースコードを使用することができます。

関連する問題