Asp.net core 如何使用IdentityServer4验证x509签名凭据
我有两个.Net核心API—一个使用IdentityServer4发布JWT标识令牌的授权服务器,以及一个受保护并需要该令牌的资源API 身份验证服务器正在使用自签名的x509证书(目前) 在auth服务器中,我在Asp.net core 如何使用IdentityServer4验证x509签名凭据,asp.net-core,oauth,oauth-2.0,identityserver4,Asp.net Core,Oauth,Oauth 2.0,Identityserver4,我有两个.Net核心API—一个使用IdentityServer4发布JWT标识令牌的授权服务器,以及一个受保护并需要该令牌的资源API 身份验证服务器正在使用自签名的x509证书(目前) 在auth服务器中,我在ConfigureServices中有类似的内容: var certificate = new X509Certificate2(//path.to.my.certificate//); services.AddIdentityServer().AddSigningCredential
ConfigureServices
中有类似的内容:
var certificate = new X509Certificate2(//path.to.my.certificate//);
services.AddIdentityServer().AddSigningCredential(certificate)
但我对资源API如何验证签名凭据的理解并不清楚
我在ConfigureServices
中为资源API提供的全部功能是:
services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
.AddIdentityServerAuthentication(
options =>
{
options.Authority = "//MyAuthAPI";
});
资源API是否应该使用相同的证书来验证JWT令牌?有必要吗
如果是这样的话,应该怎么做?基本上,ASP.Net核心中间件从
https://{yourDomain}/.著名的/openid配置
下载身份提供者配置,这是您的选项。权限
uri。如果您实际导航到一个子urlhttps://{yourDomain}/.well-known/openid-configuration/jwks
,您还将看到标识提供程序发布了它用于签名令牌的公钥
通过获取公钥,中间件能够使用api请求中包含的头(Authorize:Bearer{token}
),使用常规非对称加密验证方法验证令牌是否确实由预期的授权uri发出