我有一个OAuth安全的REST服务" Oservice"。客户端(想要访问OService)无法在服务的令牌生成器中请求令牌。我希望WSO2 ESB能够为客户处理这个问题:
1)ESB应该有一个API,它接收来自客户端的请求,添加名称+密码并将此请求发送给令牌生成器。
2)ESB应该接收令牌并将令牌添加到来自客户端的消息中,并将其转发给Oservice。
3)Oservice从ESB接收消息,验证令牌并向ESB回复正确的内容,ESB会将回复转发给客户端。
我试图找出OAuth调解员是否这样做,但是没有成功,因为OAuth调解员的文档相当短。 有谁知道如何处理这种情况?
非常感谢!
修改
目标是使用ESB将安全服务公开为不保护客户端。我希望这有点澄清。
答案 0 :(得分:0)
OAuth介体只能用于验证请求附带的OAuth访问令牌。在您的用例中,后端REST服务使用OAuth保护,而通过ESB发出的请求应具有访问令牌。在这种情况下,OAuth介体没有用,因为令牌验证发生在后端,而不是ESB。 This文章解释了OAuth的工作原理。在步骤2和3中,您无论如何都需要人工干预来验证资源所有者,而不是以编程方式完成。因此,您的完整要求似乎无效,因为应用程序而非资源所有者访问最终资源。
但我认为您的部分要求可以实现。假设您在ESB中有两个REST API API1和API2。
希望这有帮助
答案 1 :(得分:0)
在您的情况下,您可以使用OAuth2资源所有者凭据授予类型,该类型在使用资源所有者凭据对应用程序具有高度信任时使用。
希望它有所帮助。