Zacząłem używać OpenIddict i uważam, że jest dokładnie to, czego potrzebujesz.
Jest to w zasadzie cała konfiguracja Potrzebowałem:
ConfigureServices:
services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders()
.AddOpenIddictCore<Application>(config => config.UseEntityFramework());
Konfiguracja
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/";
});
Istnieje jeden lub dwa inne drobne rzeczy, takie jak DbContext musi pochodzić z OpenIddictContext<ApplicationUser, Application, ApplicationRole, string>
.
Można zobaczyć pełną długość wyjaśnienie (w tym linki do repo github) na tym blogu z kopalni: http://capesean.co.za/blog/asp-net-5-jwt-tokens/
https://gist.github.com/siacomuzzi/1832edeb905a9582a7dd? – adaam
dzięki. Przekonałem się już o tym i korzystałem z niego w międzyczasie, ale tylko dla konsumpcji JWT, a nie generowania i używa pakietów Microsoft.Owin, które wydają się być przestarzałe w asp.net5. Są one użyteczne, ponieważ nie używają Microsoft.AspNet.Authentication, gdzie wszystko się porusza. –