我们如何将客户的无服务器应用程序与我们的OAuth服务器的自己的用户群集成?

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

我们有一个简单的设置:基于OAuth 2.0的授权服务器,目前只支持client_credentials授权类型。然后我们有一个API,即资源服务器,它受到OAuth服务器的访问令牌的保护。

到目前为止,我们API的所有用例都是纯粹的机器到机器通信,只是我们的客户服务器运行批处理作业。

今天我和一位新客户开了个会。他们有一个似乎没有自己的后端服务器的SPA。它使用AWS进行身份验证,似乎返回JWT,但据我所知,他们直接向公共服务发出大量API调用,然后逻辑全部在SPA中执行。

理想情况下,我们希望他们只需向我们注册一个OAuth客户端,这样当用户发出需要我们的API的请求时,请求首先被路由到他们的服务器,执行查找,然后使用他们的客户端凭证与我们的服务器联系。但他们宁愿不必设置后端。在这种情况下,我对我们如何合理地让它们与我们的系统集成感到茫然。他们更愿意将用户的JWT发送到我们的系统,但我不认为他们知道在这种情况下我们需要他们的密钥来验证用户的签名,而我们不希望仅为此创建新的API目的。

非常感谢有关此问题的任何建议 - 非常感谢您提前寻求帮助。

security authentication oauth oauth-2.0 integration
1个回答
0
投票

理想情况下,我们希望他们只需向我们注册一个OAuth客户端,这样当用户发出需要我们的API的请求时,请求首先被路由到他们的服务器,执行查找,然后使用他们的客户端凭证与我们的服务器联系。

您推荐的方法是使用客户端凭据授权执行此操作的正确方法。

他们更愿意将用户的JWT发送到我们的系统,但我不认为他们知道在这种情况下我们需要他们的密钥来验证用户的签名,而我们不希望仅为此创建新的API目的。

如果以前的方法不起作用,我担心这是这样做的唯一方法。您需要实现代理来验证JWT(您应该能够获取其公钥来验证签名)。您可以在AWS本身中执行此操作,使用AWS API Gateway + Lambda验证JWT并使用客户端凭据授权将请求转发到现有后端,您无需预先支付任何费用。

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