我正在设计一项新服务,使“客户”能够注册并为他们执行的特定搜索支付每次使用类型的费用。该服务将使用 RESTFul 和 SOAP 接口公开。通常,Web 服务将与客户的网站集成,然后向“公众”公开,任何人都可以使用客户的网站并利用我的 Web 服务功能(客户需要付费但可以完全控制审核)请求,这样他们就不会被收取太多费用)。
我想设计优化集成的服务,使其尽可能简单。Web 服务 API 将发生变化,因此在某些情况下,创建一个内部代理以向公众公开 Web 服务对客户来说太过分了。所以我看到的问题是创建一个平衡身份验证、安全性和集成的 Web 服务。
理想的
- 不使用 OAuth
- 避免强迫客户创建一个内部代理来重新公开我已经拥有的相同 Web 服务 API。
- 安全(令牌用户名/传递任何内容和 ssl)
- 在客户网站中嵌入一个 javascript 库 - 这将是一个客户端 Javascript 库,使集成步骤更加容易。
- Javascript 库需要足够安全,这样公众就无法简单地获取凭据并自行重新使用它
- 如果可能的话,不要太老套,所以如果 Firefox 87 出现(将在几分钟内发布)并决定对其进行更新,则不必重新构建 Web 服务。
似乎需要某种 3 向身份验证过程才能使其工作,即对特定客户端(在公共场合)、Web 服务(客户)和 Web 服务进行身份验证。
有没有人实施过类似的事情,他们是如何解决这样的情况的?
我也明白在可以做的事情和违反跨域安全的事情之间有一个平衡,所以也许整个 Web 服务可能会被另一个只返回 JSONP 数据的 GET 接口公开。
/**附录**/
从那以后,我发现了一个 Web 服务,它可以满足我的需求。但是,我不确定我是否完全了解实施细节。所以也许有人也可以详细说明我的想法。
我发现的 Web 服务似乎在服务端托管了 Javascript。然后,客户将通过将 Javascript 包含在脚本标记中来将他们的网站与服务端集成,但提供了这样做的密钥,即
不知何故,如果我将脚本添加到我的网站,它就不起作用。因此,在某个地方,令牌必须注册到特定的客户域,而“client-lib.js”实际上是一个 servlet 或类似的东西,它可以以某种方式检测到来自“公众”的用户实际上来自“客户”域。
我的想法对吗?是否有某种可以以这种方式使用的 http 标头?那安全吗?
干杯