使用 WSO2 身份服务器和 WSO2 API 管理器保护后端

Securing backend with WSO2 Identity Server and WSO2 API Manager

我有一个通过 WSO2 API 管理器公开的 API,它由 OAuth2 保护,因此客户端必须通过 apikeytokencredentials 以获得对资源的访问权限。到目前为止,一切都很好。但现在,我也想保护后端的端点。后端只接受来自 API 管理器(IP 安全)的调用,但它是开放的,我的意思是,如果有人可以访问 APIM 的主机进行调用,它将接受,因为它们之间没有身份验证。

我想使用 Identity Server 来保护后端,但根据 APIM documentation,支持的端点安全是 BASIC 或 DIGEST。

在 SpringBoot 后端实现 BASIC/Digest 身份验证并使用 WSO2 Identity Server 作为用户注册表的最佳方法是什么?这样我就可以将每个安全细节集中到一个解决方案中。

提前致谢。

如果您使用基本身份验证或任何类似的身份验证,您的后端可能必须再次 API 调用 WSO2 来验证该令牌。相反,您可以将自包含的 JWT 令牌从 API 管理器传递到后端。这样后端就可以验证 JWT 是由 API 管理器颁发的,它自己使用证书而不依赖任何其他东西。

通过这种方式,您可以通过 JWT 内容验证是否调用了 API 经理,以及最终用户。

文档:https://apim.docs.wso2.com/en/latest/learn/api-gateway/passing-end-user-attributes-to-the-backend/passing-enduser-attributes-to-the-backend-using-jwt/?fbclid=IwAR1JT9DLOclmA-xw0Ev9C2Xrje5EDGrDBnmMkfDKMcbxTlCLf0swSPucMfA