为什么要使用Client Credentials流程?

时间:2015-02-11 10:31:27

标签: api oauth-2.0 basic-authentication

我一直在寻找使用oauth2客户端凭据授权来保护我的API(所有用户都将成为第三方信任的用户)。我在这里遵循与paypal相同的方法:https://developer.paypal.com/docs/integration/direct/paypal-oauth2/

但是,我看到HTTP:// basic auth用于获取承载令牌。然后,承载令牌用于保护API调用。

我不明白的是,如果您要信任TLS和http:basic auth来检索承载令牌 - 为什么不使用http:basic auth进行API调用?使用承载令牌有什么好处?

我错过了什么?

2 个答案:

答案 0 :(得分:2)

添加Ankit Saroch所说的内容,与Tokens一起走OAuth方式可能会在未来开辟其他可能性;假设您可能希望扩展流程以包含用户信息。通过仅验证令牌,这意味着您可能不需要在服务中更改令牌验证(这很简单),而只需要更改身份验证和授权步骤。

但显然您说的是正确的:客户端凭据OAuth流更多安全,而不仅仅是使用API​​密钥或基本身份验证等技术。所有这些都依赖客户保密(它可以保留自己的凭据)。

OAuth规范(https://tools.ietf.org/html/rfc6749#section-2.1)讨论了这些客户端类型。总的来说,实际上值得阅读规范。

答案 1 :(得分:1)

根据The OAuth 2.0 Authorization Framework: Bearer Token Usage

  

访问令牌提供抽象,替换不同      授权构造(例如,用户名和密码,断言)      资源服务器理解的单个令牌。这种抽象      允许发布在短时间内有效的访问令牌      因为删除资源服务器需要了解各种各样的      认证方案。

授权请求并为您提供承载令牌的服务器可能与实际控制您尝试访问的资源的服务器不同。

根据RFC,它们被显示为两个不同的实体。为您提供承载令牌的是授权服务器,为资源提供服务的是资源服务器