当前正在运行身份服务器4,并且能够使用client_credential流接收访问令牌。
我使用令牌从服务器访问api,但收到了此消息
error =“ invalid_token”,error_description =“未找到签名密钥”
我怀疑调用网络api时传递令牌时需要某种方式验证令牌。
我的设置是这样的。
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
options.Authority = Configuration.GetValue<string>("ApiAuthorityBaseUrl");
options.Audience = "api1";
options.RequireHttpsMetadata = false;
});
并使用AddDeveloperSigningCredential。
在AddJwtBearer中有一个叫做TokenValidationParameters的东西,我不确定这是解决问题的正确地方。有人可以给我一些提示
答案 0 :(得分:0)
中间件(AddJwtBearer)试图在id_token
中查找签名,以使用.well-known/openid-configuration/jwks
键授权进行验证。您的令牌可能没有私钥签名。
在您的情况下,授权可能来自其他位置(实例的克隆),该位置可能具有相同的参数,但不是签名密钥。