Rest 我应该如何保护这个公共API?

Rest 我应该如何保护这个公共API?,rest,security,oauth-2.0,jwt,api-key,Rest,Security,Oauth 2.0,Jwt,Api Key,我已经构建了一个REST API,该API将集成到现有的消费者预订系统/应用程序中,并使他们的客户(最终用户)能够预订我公司提供的其他商品/服务 例如,最终用户预订住宿,如果他们使用的预订系统完全集成了我们的API,那么该用户也可以为他的旅行租车 因此,参与该B2B2C业务的三方(在迷你流程图中)为: API(我的公司)客户(预订提供商)(客户的客户)最终用户 代表最终用户,我们的客户(预订提供商)可以调用我们的以下端点: 检查产品可用性 下单 取消订单 我们希望预订提供商在他们的系统中“安装”

我已经构建了一个REST API,该API将集成到现有的消费者预订系统/应用程序中,并使他们的客户(最终用户)能够预订我公司提供的其他商品/服务

例如,最终用户预订住宿,如果他们使用的预订系统完全集成了我们的API,那么该用户也可以为他的旅行租车

因此,参与该B2B2C业务的三方(在迷你流程图中)为:

API(我的公司)客户(预订提供商)(客户的客户)最终用户

代表最终用户,我们的客户(预订提供商)可以调用我们的以下端点:

  • 检查产品可用性
  • 下单
  • 取消订单
  • 我们希望预订提供商在他们的系统中“安装”我们的API服务,从而向他们的最终用户提供我们的服务,然后不必担心这一点(即不必一直登录以重新验证)。我的问题是,您将如何保护这些端点

  • Api密钥-那么预订提供商在其请求中硬编码密钥

  • JWT-预订提供商必须硬编码其登录详细信息,以便在每次有会话时自动检索访问令牌

  • Oauth-与JWT相同的问题


  • 这些似乎都不是最优的。如果您有任何建议,我将不胜感激。

    在我看来,在您描述的场景中,Api密钥和JWT/OAuth之间没有太大区别


    就我个人而言,我会选择一个Api密钥,或者如果您确实需要维护更高级别的安全性,您可以考虑基于证书的相互身份验证。

    在我看来,在您描述的场景中,Api密钥和JWT/OAuth之间没有太大区别

    就个人而言,我会选择一个Api密钥,或者如果您确实需要维护更高级别的安全性,您可以考虑基于证书的相互身份验证