通过 WSO2 API 管理器访问 oauth2 安全服务



我有一个项目,其中有几个微服务使用Spring oauth2进行保护。我已经在 WSO2 API 管理器上发布了这些服务,并禁用了 WSO2 的 oauth2 功能,因为我的服务已经使用 spring oauth2 进行了保护。现在,当我访问在 WSO2 上发布的服务时,使用 spring oauth2 的令牌,我得到的状态代码 0"无响应"或状态代码 403 未经授权。这里可能有什么问题。

WSO2AM (API 管理器) 使用 OAuth 协议授权客户端,后端服务应信任提供服务授权的 WSO2AM。

API 管理员无法(默认情况下)验证后端服务的令牌。

据我所知,WSO2 AM 清除了后端服务的"授权"标头。(当我错了时纠正我)。

您的选择:

  1. 设置适当的环境,其中 APIM 用于授权用户。APIM 可以使用用户身份和属性向后端服务发送 JWT 令牌,后端服务将验证并信任包含用户身份和属性的 APIM JWT 令牌。我真的建议你坚持 APIM 的工作方式,而不是试图强迫它以其他方式工作

  2. 如果您确实必须使用自己的 OAuth 令牌,则可以在不同的标头中发送授权令牌(不会被清除)

  3. 您可以创建自定义中介流,以将授权标头重新输入到请求中(我不确定您是否也需要更新公开的 api 中介流或不跳过默认授权方)。

最新更新