我目前正在开发基于ASP.NET Core 1.0的RESTful项目,该项目连接到Identity Server 3.我在Startup.cs的ConfigureServices方法中为所有控制器设置了一个全局[Authorize]过滤器。
我现在尝试在CORE 1.0项目的Startup.cs中针对我的Identity Server 3的AJAX请求验证我的Bearer Token,从而授权我的控制器资源。
与(经典)ASP.NET 4.5相比,ASP.NET CORE 1.0似乎发生了很大的变化。
你有什么想法如何实现这个目标吗?如何在ASP.NET Core 1.0中验证我的令牌?
非常感谢!
UPDATE
在Asp.net 4.5中,我能够使用app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions(){...}),但这在ASP.NET Core 1.0中不存在。
相反,我尝试使用以下内容:
var connectOptions = new OpenIdConnectOptions
{
Authority = Configuration["IdentityServerSettings:CoreUrl"],
ClientId = Configuration["IdentityServerSettings:ClientId"],
ClientSecret = Configuration["IdentityServerSettings:ClientSecret"],
PostLogoutRedirectUri = Configuration["IdentityServerSettings:PostLogoutRedirectUri"],
ResponseType = OpenIdConnectResponseType.Code
};
app.UseOpenIdConnectAuthentication(connectOptions);
不幸的是,我得到的只是一个HTTP 302 ......
可以使用IdentityServer4.AccessTokenValidation来解决此问题:)
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions()
{
ScopeName = Configuration["IdentityServerSettings:ApiScopes"],
Authority = Configuration["IdentityServerSettings:CoreUrl"]
});
我想你要求的是你想使用Bearer Token Authentication中间件。
你正在寻找的包是"Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0"