Service d’autorisation OAuth dans ASP.NET Core

Dans Web API 2, vous pouviez créer un noeud final pour émettre un jeton en configurant un OAuth Authorization Server via un middleware comme ci-dessous:

//Set up our auth server options. var OAuthServerOptions = new OAuthAuthorizationServerOptions() { AllowInsecureHttp = true, TokenEndpointPath = new PathSsortingng("/token"), AccessTokenExpireTimeSpan = TimeSpan.FromDays(1), Provider = new SimpleAuthorizationServerProvider() }; // Sets up the token issue endpoint using the options above app.UseOAuthAuthorizationServer(OAuthServerOptions); 

Peut-être me manque-t-il, mais j’essaie de comprendre comment faire cela dans ASP.NET Core. J’ai parcouru la source ( https://github.com/aspnet/Security ) mais je ne vois rien d’analogue. Y a-t-il une nouvelle façon d’y parvenir? Dois-je créer un contrôleur et le faire moi-même?

Je vois comment l’authentification OAuth peut être configurée via Middleware, mais cela concerne la partie d’autorisation où j’émets des réclamations à partir de mon API.

Ne perdez pas votre temps à chercher une alternative à OAuthAuthorizationServerMiddleware dans ASP.NET Core, l’équipe ASP.NET a simplement décidé de ne pas la porter: https://github.com/aspnet/Security/issues/83

Je suggère de jeter un oeil à AspNet.Security.OpenIdConnect.Server , un fork avancé du middleware d’permissions OAuth2 fourni avec Katana 3: il existe une version OWIN / Katana 3 et une version ASP.NET Core qui prend en charge les deux. Framework NET et .NET Core.

https://github.com/aspnet-consortingb/AspNet.Security.OpenIdConnect.Server

ASP.NET Core 1.x:

 app.UseOpenIdConnectServer(options => { options.AllowInsecureHttp = true; options.TokenEndpointPath = new PathSsortingng("/token"); options.AccessTokenLifetime = TimeSpan.FromDays(1); options.TokenEndpointPath = "/token"; options.Provider = new SimpleAuthorizationServerProvider(); }); 

ASP.NET Core 2.x:

 services.AddAuthentication().AddOpenIdConnectServer(options => { options.AllowInsecureHttp = true; options.TokenEndpointPath = new PathSsortingng("/token"); options.AccessTokenLifetime = TimeSpan.FromDays(1); options.TokenEndpointPath = "/token"; options.Provider = new SimpleAuthorizationServerProvider(); }); 

Pour en savoir plus sur ce projet, je vous recommande de lire http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-introduction/ .

Bonne chance!

Pour tous ceux qui recherchent toujours le serveur d’autorisation OAuth original dans ASP.NET 5, j’ai porté le code et l’exemple original ici: https://github.com/XacronDevelopment/oauth-aspnet

Le port inclut une compatibilité descendante pour permettre aux serveurs de ressources ASP.NET 4.x de lire les jetons d’access créés par le serveur d’autorisation.

Les paquets nuget sont ici: https://www.nuget.org/packages/OAuth.AspNet.AuthServer https://www.nuget.org/packages/OAuth.AspNet.Tokens https://www.nuget.org/ packages / OAuth.Owin.Tokens