如何从 WSO2 API Manager 验证 JWT

use*_*361 6 validation wso2 jwt wso2-api-manager

在后端 Web 服务位于单独的服务器上并且需要确定给定请求通过 APIM 网关身份验证和授权机制的情况下,验证 JWT 是否由特定 API 管理器实例发出的推荐方法是什么?

我知道 JWT 中的标头字段包含一个“x5t”字段,它是对租户密钥存储中证书的编码引用,详情如下:

https://asankastechtalks.wordpress.com/2013/12/05/obtaining-certificate-used-to-sign-a-jwt/

由于后端 Web 服务位于单独的服务器上,我们是否需要以某种方式将公钥分发给它?另外,我们如何更新用于签署 JWT 的证书,因为它现在使用的是默认值?

Lou*_*lus 2

x5t 中的数据并不是整个证书,它只是一个哈希值,可帮助您识别您拥有的证书是否相同。这意味着您确实需要将公共证书上传到接收服务。

使用 https,可以在握手中检索公共证书,然后客户端可以检查该证书是否由受信任的 CA 签名。然而,通过此验证,没有这样的机制,因此您不能只信任 CA,您必须信任每个公共证书。

还有另一个可选标头“x5u”,其中包含公共证书的 url 链接,但 APIM 未设置该值。