如何在WSO2 OAuth2及其后端API服务器Oauth2中传递授权头?

问题描述 投票:1回答:3

WSO2 API管理器及其后端API服务器(在Azure上)都使用OAuth2。

它们都使用相同的标题如下:

WSO2 API管理器

授权:Bearer 72135e9f1dc96201949351261284dc7

API服务器

授权:Bearer MfGb9pnTEGVWmDyjlfSZjlxhc8pFtef

我使用Rest客户端进行测试。 我发现我可以通过WSO2 API Manager OAuth2,但无法通过API Server OAuth2。

消息是: “此请求已被拒绝授权。” 由API服务器返回。

如何通过重新配置WSO2 API Manager来解决此问题?

非常感谢。

wso2-am
3个回答
3
投票

当带有授权标头的WSO2 API Manager发出请求时会发生什么情况,它会读取令牌,对密钥管理器进行验证并在调用后端API服务器之前删除该令牌。 如果要向后端API服务器添加另一个授权标头,可以在API中按顺序定义中介扩展[1],并通过标头中介添加授权令牌。

<header name="Authorization" value="Bearer MfGb9pnTEGVWmDyjlfSZjlxhc8pFtef"/>

[1] https://docs.wso2.com/display/AM190/Adding+Mediation+Extensions


0
投票

您可能希望尝试通过ESB上的API路由您的WSO2 API,并在新消息(例如Header介体内)中添加新的OAuth2标头(用于Azure api),然后将其发送到您的后端api 。

您无法重复使用相同的OAuth令牌。


0
投票

这正是你想要的:

https://docs.wso2.com/display/AM190/Pass+a+Custom+Authorization+Token+to+the+Backend

您将第二个authorizatoion标题“自定义”。 然后在wso2处理完您的请求后,它会通过上述调解更改回“授权”标题。

我已经在几个项目中实现了它并且完美地工作了。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.