我在理解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
仅适用于第三方登录吗?
答案 0 :(得分:1)
您的问题对细节有点了解,但听起来您计划使用Client Credential OAuth流程:
当客户端请求访问受其控制的受保护资源时,客户端可以仅使用其客户端凭据(或其他受支持的身份验证方法)请求访问令牌。
无论哪种方式,是的,您的Javascript应用程序将被视为客户端。根据规范中的the definition:
术语“客户端”并不暗示任何特定的实现特征(例如,应用程序是在服务器,桌面还是其他设备上执行)。
与您链接的文章一致,客户通常被视为OAuth中的第三方。前两个方将是资源所有者(即用户)和资源/授权服务器。当然,该术语在客户端凭据流中并不十分有用,其中“客户端请求访问受其控制的受保护资源”。
答案 1 :(得分:1)
client
是您的Javascript应用程序。 third party application
或relying party
也指定您的客户。
更清楚的是,客户端是将与授权服务器或资源服务器进行交互的应用程序
您描述的流程是Resource Owner Password Credentials Grant。但是,如果您的客户端和授权服务器没有信任关系,我建议您使用专为脚本应用程序设计的Implicit Grant。