我们有一个Mulesoft Cloudhub环境,我们计划部署公共API,还配置了一个VPC,用于部署私有API。
我正在研究如何最好地保护API,并查看了以下方法:
我的查询是什么时候应该使用每个?他们是示例用例吗?例如。 OAuth似乎比基本身份验证以及客户端ID和机密更为安全,所以为什么不一直使用OAuth并忘记其他两个呢?
谢谢
答案 0 :(得分:0)
OAuth更着眼于授权,而不仅仅是身份验证。
例如,OAuth 2具有针对不同用例的许多不同流程。如3条腿的OAuth允许您使用外部身份提供程序,从而允许用户被授权访问您的资源。在某种程度上,您根本不执行任何身份验证。
在一些简单的场景中,Http basic仍然可以达到目的,可能是因为使用其他东西的成本和/或努力不值得,并且它是内部网络并且OJ已经具有某种ldap或active directory类型的东西用于其他应用程序(这里使用SSL非常重要,因为基本身份验证凭据是纯文本)
关于客户端ID和机密,尽管它与用户名/密码类似,但在语义上更重要-您信任的是客户端而不是具有凭据的人。
例如,您可以使用客户端ID来验证实际的客户端,例如移动应用程序或Web应用程序。诸如MuleSoft的API Manager之类的客户端ID实施还允许您添加诸如速率限制和基于SLA的速率限制之类的策略,以便您可以限制特定的客户端应用程序以免API过载。
您可以将其与OAuth一起使用。用于访问API的客户端ID /机密,但用于授权最终用户的OAuth。
这是一篇更详细的文章,讨论了各种常见api auth机制的利弊,以及用于您的用例的各种OAuth流之间进行选择的链接。
https://nordicapis.com/3-common-methods-api-authentication-explained/