asp.net-core – 通过JWT Token授权
使用ASP.NET Identity 3.0的ASP.NET Core 5,我正在使用网页和apis.我正在使用OpenIddict发出JWT令牌并进行身份验证.我的代码看起来像这样:
X509Certificate2 c = new X509Certificate2(@"tokensign.p12","MyCertificatePassword"); services.AddOpenIddict<WebUser,IdentityRole<int>,WebDbContext,int>() .EnableTokenEndpoint("/api/customauth/login") .AllowPasswordFlow() .UseJsonWebTokens() .AddSigningCertificate(c); 如果我禁用UseJsonWebTokens(),我可以生成一个令牌并成功授权.但是,我不确定我的证书是否验证了返回的令牌. 当启用UseJsonWebTokens时,我能够在此终点发出JWT令牌.但是,我无法验证任何请求! 我在应用程序配置中使用以下代码: app.UseJwtBearerAuthentication(new JwtBearerOptions { AutomaticAuthenticate = true,AutomaticChallenge = true,RequireHttpsMetadata = false,Authority = "http://localhost:60000/",Audience = "http://localhost:60000/",}); app.USEOAuthValidation(); app.UseIdentity(); app.USEOpenIddict(); app.UseMvcWithDefaultRoute(); >如何强制使用我的证书验证请求,以确保JWT令牌未被篡改. 解决方法
在ASOS(OpenIddict背后的OpenID Connect服务器框架)中,有2种不同的内置序列化机制来创建和保护令牌: >使用IdentityModel(由Microsoft开发的库)并生成可由第三方验证的标准令牌: 始终使用此过程创建标识令牌(根据定义为JWT),您可以调用UseJsonWebTokens()强制OpenIddict发出使用相同序列化过程的访问令牌. 您在调用AddSigningCertificate()时指定的证书始终用于对这些令牌进行签名. >使用ASP.NET核心数据保护堆栈(也由Microsoft开发): 此堆栈专门生成“专有”令牌,这些令牌不应由第三方读取或验证,因为令牌格式不是标准格式,必然依赖于对称签名和加密. 这是我们用于授权代码和刷新令牌的机制,仅供OpenIddict本身使用.当您使用默认令牌格式时,它也用于访问令牌. 在这种情况下,不使用您在调用AddSigningCertificate()时指定的证书. 相反,这些令牌始终由数据保护堆栈使用经过身份验证的加密算法(默认情况下为AES-256-CBC和HMACSHA256)进行加密,从而提供真实性,完整性和机密性.为此,数据保护堆栈从存储在密钥环中的一个主密钥导出2个密钥(一个用于加密,一个用于验证).
要回答这些问题,如果您启用了日志记录并共享了跟踪,这将有所帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何为ASP.Net创建一个准系统HttpApplication(没有Webforms
- vs文件上传失败--超过最大字符限制
- asp.net-mvc-4 – ASP.NET MVC 4 ScriptBundle返回空
- Programming学习1_ASP、JSP、PHP 、Perl、.NET 等WEB开发语
- ASP.NET Core 2.0 + EF6 + Linux&nbs
- asp.net-mvc – 默认的AccountController示例何时更改?
- asp.net-mvc – 动态加载的程序集中的强类型Razor视图不会在
- asp.net-mvc – ASP.NET MVC – 我可以为同一个动作创建多个
- asp.net-mvc-2 – Asp.net MVC标签
- ASP.net WebForms是CPU密集型平台吗?
- asp.net – 为什么request.rawurl不包含http://
- asp.net-mvc – 动态类型的ViewPage
- asp.net – TextBox在使用TextMode Number回发后
- asp.net – Glimpse手动分析a MiniProfiler?
- asp.net-mvc-2 – ASP.NET-MVC2预览1:有任何重大
- asp.net – WebForms中的强类型容器
- asp.net-mvc – 在ASP.NET MVC中生成链接?
- asp.net-mvc-3 – 如何在控制器方法的新选项卡中
- ASP.net HTTP 404 – 找不到文件而不是MaxReques
- 与asp.net mvc一起使用的好IOC框架?