Ich verwende die folgende JWT Middleware, um alle Controller mit einer gültigen JWT zu autorisieren, und es funktioniert wie erwartet. Ich muss Client-Zertifikat-basierte Autorisierung auf einem der Controller aktivieren. Ich verstehe, dass ich eine neue Middleware erstellen und sie in owin-Pipeline stecken kann, die Client-Zertifikate überprüft.Owin Middleware pro Controller in ASP.net Web API
Wie wird entschieden, welcher Controller welche Middleware verwendet? Soweit ich weiß, hat OWIN keine Kenntnis von einem Controller. Bitte legen nahe,
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),
}
});
}