Laden...

ASP.NET Identity und eigene Requestvalidierung?

Erstellt von Noodles vor 8 Jahren Letzter Beitrag vor 8 Jahren 2.211 Views
N
Noodles Themenstarter:in
4.644 Beiträge seit 2004
vor 8 Jahren
ASP.NET Identity und eigene Requestvalidierung?

Hallo,

wie validiert ASP.NET Identity (OAuthAuthorizationServerProvider) die Requests?
Ich habe folgende Situation:

public partial class Startup {
    public void Configuration(IAppBuilder app) {
        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

        var authServerOptions = new OAuthAuthorizationServerOptions() {
            AllowInsecureHttp = true,
            TokenEndpointPath = new PathString("/token"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
            Provider = new SimpleOAuthProvider()
        };

        app.UseOAuthAuthorizationServer(authServerOptions);
        app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
    }
}

Der Provider:

public class SimpleOAuthProvider : OAuthAuthorizationServerProvider {
    public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context) {
          context.Validated();
          return Task.FromResult<object>(null);
    }

    public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) {
        var allowedOrigin = "*";

        context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });
            
        var identity = new ClaimsIdentity(context.Options.AuthenticationType);
        identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
        // ...

        var props = new AuthenticationProperties(new Dictionary<string, string>();
        var ticket = new AuthenticationTicket(identity, props);
        context.Validated(ticket);            
    }
}

Wenn ich nun per Postman einen Request (mit einem gültigen Token) absetze, dann hätte ich erwartet, dass ich nun in ValidateClientAuthentication ankomme. Dem ist aber nicht so.
Die tokenbasierte Authentifizierung an sich funktioniert, wenn ich das Token entferne erhalte ich keinen Zugriff, auch wenn ich es verändere werde ich ausgesperrt.
Wo muss ich dann nun eingreifen, wenn ich nun aber noch eigene Validierungen per Request ausführen will?