问题描述
我已经构建了一个 REST API,它将集成到现有的消费者预订系统/应用程序中,并使他们的客户(最终用户)能够预订我公司提供的其他商品/服务。
例如,最终用户预订住宿,如果他们使用的预订系统完全集成了我们的 API,那么该用户还可以为他的旅行租车。
因此,参与此 B2B2C 业务的三方(在迷你流程图中)是:
API(我的公司) 客户(预订提供商)(客户的客户)最终用户
代表最终用户,我们的客户(预订提供商)可以调用我们的以下端点:
- 检查产品可用性
- 下订单
- 取消订单
我们希望预订提供商在他们的系统中“安装”我们的 API 服务,从而为他们的最终用户提供我们的服务,然后真的不必担心(即不必一直登录重新进行身份验证)。我的问题是,您将如何保护这些端点?
这些似乎都不是最佳选择。如果您有任何建议,我将不胜感激。
解决方法
在我看来,在你描述的场景中,Api Key 和 JWT/OAuth 之间没有太大区别。
我个人会选择 Api Key,或者如果您确实需要保持更高级别的安全性,您可以考虑基于证书的相互身份验证。