ASP.NET核心中的OAuth授权服务

在Web API 2中,您曾经能够通过使用如下的中间件设置OAuth授权服务器来创build端点来颁发令牌:

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

也许我错过了,但我想弄清楚如何在ASP.NET核心中做到这一点。 我查看了源代码( https://github.com/aspnet/Security ),但是我没有看到任何类似的东西。 有没有新的方法来完成这个? 我需要创build一个控制器,并自己做?

我看到如何通过中间件设置OAuth身份validation,但是这涉及到我从API发出声明的授权部分。

不要浪费时间在ASP.NET Core中寻找OAuthAuthorizationServerMiddleware替代品,ASP.NET团队只是简单地决定不移植它: https : //github.com/aspnet/Security/issues/83

我build议看一下AspNet.Security.OpenIdConnect.Server ,这是Katana 3自带的OAuth2授权服务器中间件的一个高级分支:有一个OWIN / Katana 3版本和一个支持完整版本的ASP.NET Core版本。 NET框架和.NET核心。

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

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

要了解更多关于这个项目,我build议阅读http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-introduction/

祝你好运!

对于任何仍在寻找ASP.NET 5中的原始OAuth授权服务器的人,我已经将代码和原始示例移植到此处: https : //github.com/XacronDevelopment/oauth-aspnet

该端口包含向后兼容性,以允许ASP.NET 4.x资源服务器读取由授权服务器创build的访问令牌。

nuget包在这里: https : //www.nuget.org/packages/OAuth.AspNet.AuthServer https://www.nuget.org/packages/OAuth.AspNet.Tokens https://www.nuget.org/包/ OAuth.Owin.Tokens