我正在构建一个 RESTful API,试图了解如何使用不同级别的身份验证访问 API。
这些是我的场景:
a) Web 应用程序“A”处理所有帐户和计费。它应该能够调用自己的 API。
b) Web 应用程序“B”(受 Web 应用程序“A”信任,反之亦然)应该能够对 Web 应用程序“A”进行 API 调用,以验证和创建新帐户。“A”管理和存储所有帐户。
c) Web 应用程序“B”有自己的 API,也应该能够调用自己的 API。“B”管理和存储所有用户(与“A”中的帐户相关联)。
d) 第三方应用程序“C”应该能够代表“B”的用户对应用程序“B”进行 API 调用。
所以......这是我的问题:
您如何保护和验证从应用程序对其自身 API 的 API 调用?你会如何调用自己的 API?就像外部应用程序一样?
以与外部应用程序相同的方式调用 API 方法(比如运行 CURL GET https://api.example.com/accounts ) ,性能会不会很差?还是应该以不同的方式调用内部 API?(对不起,如果这个问题很愚蠢)
如果“B”信任“A”,反之亦然:我是否需要任何身份验证或授权?由于不涉及用户,只涉及帐户和业务逻辑。应用程序“B”只需要告诉“A”应该对哪个帐户进行操作。但基本上允许为任何帐户执行所有这些任务。可以简单地通过 HTTPS 发送“B”的 client_key 和 client_secret 以及请求参数吗?
我想我真的只需要场景 d) 的 oAuth,对吗?