我想为我的 SOAP 网络服务实现 JWT。基本上,我想要实现的是跨 SOAP 网络服务请求 HTTP 标头具有基本的 JWT 安全性。我的项目是作为 EAR 构建的,包含几个没有任何身份验证的 SOAP 网络服务。有人可以帮助采用相同的分步方法吗,我尝试在网上参考很少的资源,但所有与其余 Web 服务相关的资源,我不确定为 SOAP Web 服务实现 JWT 是否是一个好主意。任何线索表示赞赏。
根据您的应用程序,您可能必须使用WS-Security或不使用。
但无论如何,您仍然可以使用 JWT:s 让客户端进行身份验证并可能提供授权范围。JWT只是一个嵌入了状态信息的签名密钥,只要你能将它从客户端传递到服务器,就可以使用它。您可以将其作为 cookie(通常来自浏览器客户端)或标头(通常是授权标头)发送,但基本上您可以采用适合您的应用程序的任何方式。您甚至可以将其作为请求 SOAP 主体的 XML 元素,但可能没有人会鼓励您这样做。
确保您可以确保 JWT 在客户端上安全,其他应用程序(进程/线程)或其他 Web 应用程序(在其他选项卡/窗口中运行的 JavaScript)无法访问。如果它从客户端被盗,任何其他参与者都可以使用它来进行身份验证。
因此,首先决定客户端如何获取 JWT。它可以是一个自托管服务,其中提供秘密或一些生物识别信息来证明真实性,也可以是像 Auth0 这样的托管服务。任何可以用个人物品交换 JWT 的系统。
其次,决定您的 Web 应用程序如何验证传入的 JWT:s。它基本上需要获取公钥并使用您选择的算法(类似RS256或类似的)来验证签名。您需要某种 API 网关,您可以在其中拦截所有调用,并在 JWT 不能满足您的需求时阻止它们。调查您的网络服务以找到堆栈中正确的点进行验证。
最后,在https://jwt.io/上,您都可以找到帮助您进行签名验证的库,并且可以使用它来使用您的测试密钥创建 JWT:s。执行此操作来构建您的 Web 应用程序并测试身份验证部分。当您开发客户端时也是如此,一旦获得 JWT,您可以在jwt.io上对其进行测试以确保其已正确签名。
请注意,JWT 本身在底层采用 JSON 格式(它也是 base64 编码的),但这并不妨碍您的有效负载正文进行 XML 编码。
| 归档时间: |
|
| 查看次数: |
2103 次 |
| 最近记录: |