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

问题描述 投票:0回答:2

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

c# asp.net jwt identityserver3 asp.net-core-1.0
2个回答
0
投票

可以使用IdentityServer4.AccessTokenValidation来解决此问题:)

app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions()
            {
                ScopeName = Configuration["IdentityServerSettings:ApiScopes"],
                Authority = Configuration["IdentityServerSettings:CoreUrl"]
            });

0
投票

我想你要求的是你想使用Bearer Token Authentication中间件。

你正在寻找的包是"Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0"

© www.soinside.com 2019 - 2024. All rights reserved.