Ho iniziato a utilizzare OpenIddict e penso che sia esattamente quello che ti serve.
Questo è essenzialmente tutta la configurazione che mi serviva:
ConfigureServices:
services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders()
.AddOpenIddictCore<Application>(config => config.UseEntityFramework());
Configura
app.UseOpenIddictCore(builder =>
{
// tell openiddict you're wanting to use jwt tokens
builder.Options.UseJwtTokens();
// NOTE: for dev consumption only! for live, this is not encouraged!
builder.Options.AllowInsecureHttp = true;
builder.Options.ApplicationCanDisplayErrors = true;
});
// use jwt bearer authentication
app.UseJwtBearerAuthentication(options =>
{
options.AutomaticAuthenticate = true;
options.AutomaticChallenge = true;
options.RequireHttpsMetadata = false;
options.Audience = "http://localhost:58292/";
options.Authority = "http://localhost:58292/";
});
Ci sono uno o due altre cose minori, come il tuo DbContext deve derivare da OpenIddictContext<ApplicationUser, Application, ApplicationRole, string>
.
è possibile vedere una lunghezza spiegazione completa (compresi i collegamenti per il repo github) in questo post del blog di mine: http://capesean.co.za/blog/asp-net-5-jwt-tokens/
https://gist.github.com/siacomuzzi/1832edeb905a9582a7dd? – adaam
grazie. Ho già trovato questo e lo stavo usando nel frattempo, ma è solo per il consumo JWT, non per la generazione e utilizza i pacchetti Microsoft.Owin che sembrano essere stati deprecati in asp.net5. Sono utilizzabili solo perché non usano Microsoft.AspNet.Authentication, che è dove tutto sembra muoversi. –