我目前正在开发基于ASP.NET Core 1.0的RESTful项目,该项目连接到Identity Server 3.我在Startup.cs的ConfigureServices方法中为所有控制器设置了一个全局[Authorize]过滤器。 / p>
我现在尝试在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中验证我的令牌?
非常感谢!
更新
在Asp.net 4.5中,我能够使用 app.UseIdentityServerBearerTokenAuthentication (新的IdentityServerBearerTokenAuthenticationOptions(){...}),但这并不存在于ASP.NET Core 1.0中。< / p>
相反,我尝试使用以下内容:
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 ......
答案 0 :(得分:0)
我认为你要的是你想使用Bearer Token Authentication中间件。
您正在寻找的套餐是"Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0"
答案 1 :(得分:0)
可以使用IdentityServer4.AccessTokenValidation来解决此问题:)
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions()
{
ScopeName = Configuration["IdentityServerSettings:ApiScopes"],
Authority = Configuration["IdentityServerSettings:CoreUrl"]
});