身份服务器4:为什么在呼叫授权控制器时收到“找不到签名密钥”

时间:2018-10-16 05:09:22

标签: model-view-controller access-token identity identityserver4

当前正在运行身份服务器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的东西,我不确定这是解决问题的正确地方。有人可以给我一些提示

1 个答案:

答案 0 :(得分:0)

中间件(AddJwtBearer)试图在id_token中查找签名,以使用.well-known/openid-configuration/jwks键授权进行验证。您的令牌可能没有私钥签名。

在您的情况下,授权可能来自其他位置(实例的克隆),该位置可能具有相同的参数,但不是签名密钥。