IdentityServer3 and JWT ValidateIssuerSigningKey
本文关键字:ValidateIssuerSigningKey JWT and IdentityServer3 | 更新日期: 2023-09-27 18:22:16
我正在访问一个标准的IdentityServer3主机应用程序(ASP.NET WebApi 2)。
我正在使用JavaScript方式从IdSvr链接获取令牌
然后,我将JWT添加到授权请求标头中,并尝试在我的应用程序中进行处理。
我使用:app.UseJwtBearerAuthentication
中间件来验证此令牌。首先,这是正确的吗?
我试过:
app.UseIdentityServerBearerTokenAuthentication(
new IdentityServerBearerTokenAuthenticationOptions
{
RequiredScopes = new[] { "myscope" },
IssuerName = "My Issuer"
});
但我收到一个错误,"无法读取令牌,因为它不是有效的base64格式"。
使用UseJwt...
时,我在UAT环境中遇到一个错误,即无法验证颁发者签名密钥,因为我正在尝试使用dev-test one(这意味着我需要UAT证书)。然而,我们的其他应用程序使用app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions())
,似乎不必担心这个颁发者签名密钥。。。。
我是在尝试读取和验证此令牌的过程中遗漏了什么,还是应该继续使用公钥创建X509SecurityKey()
?
我们所有的应用程序都使用HTTPS,因此一切都使用TLS进行通信。
建议的方法是将Authority属性设置为指向身份服务器的基本URL。通过这种方式,证书(以及其他内容)从发现文档中下载,中间件可以自动配置自己。