Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api 为什么使用客户端凭据流?_Api_Oauth 2.0_Basic Authentication - Fatal编程技术网

Api 为什么使用客户端凭据流?

Api 为什么使用客户端凭据流?,api,oauth-2.0,basic-authentication,Api,Oauth 2.0,Basic Authentication,我一直在考虑使用oauth2客户端凭据授权来保护我的API(所有用户都是可信的第三方)。我在这里采用与paypal相同的方法: 但是,我看到HTTP://basic auth用于获取承载令牌。然后使用承载令牌保护API调用 我不明白的是,如果您要信任TLS和http:basic auth来检索承载令牌,为什么不在API调用中使用http:basic auth呢?使用无记名代币的好处是什么 我错过了什么 根据 访问令牌提供了一个抽象,替换了不同的 授权构造(例如用户名和密码、断言) 资源服务器可以

我一直在考虑使用oauth2客户端凭据授权来保护我的API(所有用户都是可信的第三方)。我在这里采用与paypal相同的方法:

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

我不明白的是,如果您要信任TLS和http:basic auth来检索承载令牌,为什么不在API调用中使用http:basic auth呢?使用无记名代币的好处是什么

我错过了什么

根据

访问令牌提供了一个抽象,替换了不同的 授权构造(例如用户名和密码、断言) 资源服务器可以理解的单个令牌。这个抽象 允许颁发短期有效的访问令牌 因为删除资源服务器需要了解广泛的 身份验证方案

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


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

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

但是很明显,你说的是对的:客户端凭证OAuth流比简单地使用API密钥或基本身份验证等技术更安全。所有这些都依赖于客户机的保密性(它可以将其凭证保密)


OAuth规范()讨论了这些客户机类型。总的来说,实际上值得一读规范。

这是否意味着,如果我的授权服务器和资源服务器是同一个-那么承载令牌并没有提供任何真正的好处?好处是每次发出资源请求时都可以节省对客户端进行身份验证的时间。很抱歉,天真的q's Ankit-但为什么对客户端进行身份验证比验证承载令牌更费力?