Identity Server 3身份验证/授权,使用ASP.NET CORE 1.0

时间:2016-08-25 18:57:11

标签: c# asp.net jwt identityserver3 asp.net-core-1.0

我目前正在开发基于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 ......

2 个答案:

答案 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"]
            });