【发布时间】:2016-11-05 06:23:52
【问题描述】:
我想开发一个本机应用程序(用于手机),它使用OAuth 2.0 Authorization 从资源 API 访问受保护的资源。正如section 2.1 中定义的那样,我的客户的类型 是public。
在注册时,授权服务器会提供一个client_id 用于公共识别,并提供一个redirect_uri。
客户端将使用Authorization Code 从授权服务器接收它的授权许可。对于中间的任何攻击者,这一切似乎都是安全的(如果实施正确的话)。
在section 10.2 中讨论了客户端模拟。在我的例子中,资源所有者通过用户代理向授权服务器提供其凭据来授予客户端授权。本节讨论授权服务器:
应该使用其他方式来保护资源所有者免受此类 潜在的恶意客户端。例如,授权服务器 可以聘请资源所有者协助识别客户和 它的起源。
我的主要担心是,一旦检索到 client_id 和 redirect_uri,就很容易冒充我的客户。
由于公共客户端的性质,这可以很容易地进行逆向工程。或者就我而言,该项目将是开源的,因此可以从网络上检索到这些信息。
据我从第 10.2 节了解,资源所有者有责任通过与授权服务器应协助的内容进行比较来检查客户端是否合法。
根据我的第三方应用程序向我请求授权授予的经验,我得到的只是一个页面,其中包含有关实际应该请求该授权的客户端的一些信息。根据纯逻辑,我只能判断请求授权的客户端是否真的是授权服务器告诉我应该是谁的客户端。
因此,每当我们处理PEBKAC(我认为这种情况经常发生)时,如果资源所有者只是授予它们(可能看起来像我的合法客户)授权,冒充者可以轻松访问受保护的资源,这不是真的吗? ?
【问题讨论】: