【问题标题】:wso2am-2.6.0 invalid jwt signaturewso2am-2.6.0 无效的 jwt 签名
【发布时间】:2019-05-05 18:26:49
【问题描述】:

在 WSO2AM-2.6.0(6.x 分支)中为后端服务启用 JWT 签名

<JWTConfiguration>
  <EnableJWTGeneration>true</EnableJWTGeneration>
  <JWTHeader>X-JWT-Assertion</JWTHeader>
  <SignatureAlgorithm>SHA256withRSA</SignatureAlgorithm>
<JWTGeneratorImpl>org.wso2.carbon.apimgt.keymgt.token.JWTGenerator</JWTGeneratorImpl>

但是 - 开发人员抱怨签名无效(根据 JOSE 库)。我在jwt.io 页面中测试了令牌,它还声称签名无效。

我从以前的版本 (wso2am-2.1.0) 看到签名生成发生了更改(不使用任何外部框架),但对于更改,签名也被其他框架(jose,jwt.io)视为无效)

任何配置 wso2am 以创建有效(有效)签名的方法?

编辑:

我看到 JWT 令牌仅使用 APIMJWTGenerator 进行签名,尽管它无助于使令牌有效

例外是

"stacktrace": "org.jose4j.jwt.consumer.InvalidJwtException:
 Unable to process JOSE object (cause: org.jose4j.lang.UnresolvableKeyException:
 The X.509 Certificate Thumbprint header(s) in the JWS do not identify any of the provided Certificates - x5t=NTA3YzJmZDk0OTg4N2ViNWRlY2M4N2NlMDdjMmNlNjliOTRkYjM1OA vs. SHA-1 thumbs:[UHwv2UmIfrXezIfOB8LOablNs1g].)

验证是否与 x5t 标头属性有关?

Edit2:显然 xt5t 标头应包含 SHA-1 证书签名,提供的值 NTA3YzJmZDk0OTg4N2ViNWRlY2M4N2NlMDdjMmNlNjliOTRkYjM1OA 太长而不能成为 SHA-1 或无效

编辑3:

似乎这个问题与 https://github.com/wso2/carbon-apimgt/issues/5535 有关,修复显然破坏了与后端服务的兼容性(和使用的框架,准备修复)

【问题讨论】:

    标签: wso2 jwt wso2-am jose4j jose


    【解决方案1】:

    使用 pull https://github.com/gusto2/carbon-apimgt/pull/1 进行修复(可能并不完美,但可以正常工作并经过测试)

    【讨论】:

      猜你喜欢
      • 2016-12-29
      • 2020-01-21
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 2018-06-14
      • 2019-08-04
      • 2018-10-04
      相关资源
      最近更新 更多