Lok*_*Dil 6 c# jwt bearer-token .net-core
在 .Net Core WEB API 中实现了 JWT Bearer Token 验证,如下所述:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(opt =>
{
opt.Audience = Configuration["AAD:ResourceId"];
opt.Authority = $"{Configuration["AAD:Instance"]}{Configuration["AAD:TenantId"]}";
});
Run Code Online (Sandbox Code Playgroud)
怀疑上面提到的代码只会验证受众和权威吗?或者它将验证所有参数,例如过期和签名等?
我们是否需要显式验证签名以检查有效负载是否被篡改?
Pab*_*lde 10
我想你正在寻找这个:
\nhttps://zhiliaxu.github.io/how-do-aspnet-core-services-validate-jwt-signature-signed-by-aad.html
\n这里zhiliaxu详细解释了使用时如何以及实际验证了什么.AddJwtBearer(),他们的结论是:
\n\n现在很清楚
\n\n
\n- JWT 签名经过验证,无需在我们的服务\xe2\x80\x99s 源代码中提供任何密钥或认证。
\n- JWT 签名密钥是根据\nJwtBearerOptions.Authority 属性从众所周知的 URL https://login.microsoftonline.com/common/discovery/keys检索的。
\n- 签名密钥缓存在 JwtBearerHandler 单例实例中,因此我们的 ASP.NET Core 服务只需在其整个生命周期中检索它\nonce。
\n
另外根据这篇文章我们可以看看ValidateToken()MSDN上的文档:https://learn.microsoft.com/en-us/dotnet/api/system.identitymodel.tokens.jwt.jwtsecuritytokenhandler.validatetoken ?view=azure- dotnet您可以在其中找到该方法抛出的不同异常:
| 归档时间: |
|
| 查看次数: |
18681 次 |
| 最近记录: |