Jwt AWS Cognito:令牌签名无效,无法与密钥列表中所需的密钥标识符匹配

Jwt AWS Cognito:令牌签名无效,无法与密钥列表中所需的密钥标识符匹配,jwt,amazon-cognito,openid-connect,Jwt,Amazon Cognito,Openid Connect,我正在尝试使用OpenId connect将外部身份提供者连接到AWS Cognito。我遇到了几个问题,通过将AWS请求传递给一些Python Lambda API,这些API添加/重命名了AWS Cognito本机不提供的OpenId Connect参数,我成功地克服了这些问题。登录过程即将结束,身份提供者提供的JWT必须由AWS Cognito使用身份提供者的JWKS证书进行验证 此时,Cognito终止登录过程,并将此消息附加到回调URL: #错误描述=无效(令牌)签名%3A+无法+无法

我正在尝试使用OpenId connect将外部身份提供者连接到AWS Cognito。我遇到了几个问题,通过将AWS请求传递给一些Python Lambda API,这些API添加/重命名了AWS Cognito本机不提供的OpenId Connect参数,我成功地克服了这些问题。登录过程即将结束,身份提供者提供的JWT必须由AWS Cognito使用身份提供者的JWKS证书进行验证

此时,Cognito终止登录过程,并将此消息附加到回调URL:
#错误描述=无效(令牌)签名%3A+无法+无法+匹配+所需+密钥+标识符+在+密钥列表+中&错误=无效(请求

通过谷歌搜索,我能找到的唯一半有用的东西是AWS支持论坛上的以下帖子:

在该线程中,众所周知的JWKS URL在JSON中似乎不包含
kid

在我的例子中,JWKS
kid
确实出现在身份提供者的JWKS数据中:

   "keys":[ 
      { 
         "kty":"RSA",
         "e":"AQAB",
         "n":"qRoNXLUugbenQTBHswfiGoKuhKkvUPP6A1GllxEZEAX86FiFSrXr7x_suHZ4cBytsmtFuYGymJZAGTk7DLzvMW0BHZpVtMZ3qvBDsYbNQGN4oLLxIy5-Q1rT1XTZhNkJwaj7gndbKHpQ33FqNQphhdchXB28N9GekDCJKzwEEThhxHkBxhq-hYAkd6rZ2fLiiyd5C4MSO0pMB-E_oGrNdYhCoydaFqVAhojn8am9za-JkjZIE9-Shlv_CQGt0yr91h3agVxeR2aeuZjQmvrhALJUeeJxG4D_Xl-w4v_O6nl0nllKXKHFxjP4ejDdNbht2a1L9BgJoYBjq6pUcWT49w",
         "kid":"jBiPzwFLIHbNa0SNXKJ6IJFacuMeSdqdsHSOyC4yXio"
      }
   ]
}

有人知道问题的根本原因吗?我是否需要以某种方式调整提供给AWS的JWKS JSON以消除此错误

事实证明,我误解了AWS的信息。
kid
不是指JWKS中的
kid
。它是指JWT本身中的
kid
头属性。在我的例子中,IDP没有提供
kid
,因此AWS Cognito在尝试验证其接收的JWT时感到困惑