了解OAuth2中的客户端

时间:2016-07-21 00:38:29

标签: oauth-2.0

我在理解OAuth及其中一些术语时遇到了一些困难。特别是Client的想法。我想知道我是否可能误解了与Client有关的RFC 6749

我有一个API,我想通过Javascript Web应用程序(HTML和jQuery)访问。 Javascript应用程序将使用jQuery对API进行AJAX调用。根据Javascript应用程序用户提交的用户名/密码,将提供不同的API。

在这种情况下,我的Javascript应用程序是否被OAuth视为Client?我感到困惑,因为other documentation我已阅读将Client称为第三方应用,但在我的情况下,这不是第三方应用。我没有使用第三方登录(例如Google,Facebook或Twitter)。 OAuth所指的Client仅适用于第三方登录吗?

2 个答案:

答案 0 :(得分:1)

您的问题对细节有点了解,但听起来您计划使用Client Credential OAuth流程:

  

当客户端请求访问受其控制的受保护资源时,客户端可以仅使用其客户端凭据(或其他受支持的身份验证方法)请求访问令牌。

无论哪种方式,是的,您的Javascript应用程序将被视为客户端。根据规范中的the definition

  

术语“客户端”并不暗示任何特定的实现特征(例如,应用程序是在服务器,桌面还是其他设备上执行)。

与您链接的文章一致,客户通常被视为OAuth中的第三方。前两个方将是资源所有者(即用户)和资源/授权服务器。当然,该术语在客户端凭据流中并不十分有用,其中“客户端请求访问受其控制的受保护资源”。

答案 1 :(得分:1)

client是您的Javascript应用程序。 third party applicationrelying party也指定您的客户。 更清楚的是,客户端是将与授权服务器或资源服务器进行交互的应用程序

您描述的流程是Resource Owner Password Credentials Grant。但是,如果您的客户端和授权服务器没有信任关系,我建议您使用专为脚本应用程序设计的Implicit Grant