Custom Lifetime Validation With AspNet.Security.OpenIdConnect.Server (ASP.NET vNext)

Ich verwende Visual Studio 2015 Enterprise Update 1 und ASP.NET vNext rc1-update1, um JWT-Token wie beschrieben auszugeben und zu verbrauchen.Hie.

n unserer Implementierung möchten wir die Gültigkeitsprüfung des Tokens steuer

Wir haben verschiedene Ansätze ausprobiert, die alle unerwünschte Nebenwirkungen hatten. Zum Beispiel haben wir in einem Versuch das Ereignis TokenValidationParameters.TokenValidationParameters.LifetimeValidator im @ übernommeKonfiguriere Methode

app.UseJwtBearerAuthentication
(
    options => 
    {
        options.TokenValidationParameters = new TokenValidationParameters()
        {
            LifetimeValidator = (DateTime? notBefore, DateTime? expires, SecurityToken securityToken, TokenValidationParameters validationParameters) =>
            {
                // Pretend to do custom validation
                return false;
            }
        };
    }
);

Dieses Ereignis führt dazu, dass die Validierung fehlschlägt, der Client jedoch einen 500-Fehler erhält, wohingegen wir stattdessen einen 400-Serien-Fehler und eine kleine Nutzlast zurückgeben möchten.

Bei einem anderen Versuch haben wir verschiedene Implementierungen von TokenValidationParameters.Events versucht, z. B. das Überprüfen von Ansprüchen im ValidatedToken-Ereignis. Wir konnten jedoch nicht verhindern, dass die Middleware die Controller-Aktion aufruft, ohne eine Ausnahme auszulösen, die uns zum 500-Fehlerproblem zurückführt.

Also meine Fragen sind:

Was sind die Best Practices für die Übernahme der Lebensdauervalidierung mit OIDC?

Können wir OIDC zwingen, bestimmte lebenslange Ansprüche nicht in das Token wie "nbf" aufzunehmen, da wir sie sowieso nicht benötigen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage