Validación personalizada de por vida con AspNet.Security.OpenIdConnect.Server (ASP.NET vNext)

Estoy usando Visual Studio 2015 Enterprise Update 1 y ASP.NET vNext rc1-update1 para emitir y consumir tokens JWT como se describeaquí.

En nuestra implementación, queremos controlar la validación de la vida útil del token.

Intentamos varios enfoques, todos los cuales tuvieron efectos secundarios indeseables. Por ejemplo, en un intento, asumimos el evento TokenValidationParameters.TokenValidationParameters.LifetimeValidator en elConfigurar método:

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

Ese evento hace que la validación falle como quisiéramos, pero el cliente recibe un error 500, mientras que en su lugar nos gustaría devolver un error de la serie 400 y una pequeña carga útil.

En otro intento, probamos varias implementaciones de TokenValidationParameters.Events, como inspeccionar reclamos en el evento ValidatedToken, pero descubrimos que no podíamos evitar que el middleware invocara la acción del controlador antes de lanzar una excepción que nos devolvió al problema de 500 errores.

Entonces mis preguntas son:

¿Cuáles son las mejores prácticas para hacerse cargo de la validación de por vida con OIDC?

¿Podemos obligar a OIDC a no incluir ciertas reclamaciones de por vida en el token como "nbf" ya que no las necesitaremos de todos modos?