在jwt验证过程中asp.net核心缓存jwk

时间:2018-09-19 18:52:11

标签: asp.net asp.net-core jwt

我是.NET的新手。我正在使用ASP.NET Core 2.1。我正在使用JWT进行身份验证。 作为jwt验证的一部分,我叫出发行人并获取他们的公钥来检查我的令牌完整性。所以我这样做:

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(o =>
    {
        o.Authority = Configuration["Jwt:Authority"];
        o.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateIssuer = true,
            ValidateAudience = true,
            ValidateIssuerSigningKey = true,
            ValidIssuer = Configuration["Jwt:Issuer"],
            ValidAudience = Configuration["Jwt:Audience"],
            NameClaimType = ClaimTypes.NameIdentifier,
        };
    });

这符合我的预期,但是对于每个请求似乎都发送到了发行服务器。我想要的是缓存 jwk我回来了,只有在验证失败的情况下才尝试访问权限(例如,这可能是由于密钥旋转引起的)。 奇怪的是,我没有看到在配置中定义缓存策略的明显方法。我觉得这很漂亮 标准用例,我可能会遗漏一些东西,但是我在查看文档时没有任何运气。有人可以建议 在这里对我有用吗?我是否必须滚动自己的IConfigurationManager来强制执行此操作?任何意见,将不胜感激。谢谢 很多!

0 个答案:

没有答案