2012-01-04 42 views
3

将OAuth2用于移动平台的User-agent流时,授权服务器无法验证应用程序的client_id。client_id的OAuth2安全注意事项

所以,任何人都可以通过复制CLIENT_ID冒充我的应用程序(并因此获得代表我所有的访问令牌),这是适用于脸谱,四方,...

这不是由管理的OAuth2?或者我错过了什么?

对于Web应用程序(Web服务器流程),访问令牌存储在服务器端,客户端使用密钥进行身份验证。

回答

4

没有好的答案。本地应用程序回调通常通过自定义注册URI方案发生(例如:回调重定向URI类似于:myapp:// oauth?code = xyz123)。不幸的是,任何应用都可以声明给定协议方案的所有权并接收回调。

此问题与尝试锁定任何使用“可信客户端”协议的代名词非常相似。想想即时通信网络的战斗,锁定第三方客户端(在2000年初)。最终他们放弃了 - 因为任何客户端协议端点的部署都可能由第三方开发者反向设计。

注:也有关于这一主题的一些积极讨论的OAuth的工作组邮件列表上:http://www.ietf.org/mail-archive/web/oauth/current/msg08177.html

+0

感谢您的链接和解释,这在当前的草稿中清楚地注意到:http://tools.ietf.org/html/draft-ietf-oauth-v2-22#section-1.3.2。希望这会改变,否则我们别无选择,只能信任授权服务器来检测(是否有可能?)任何恶意使用client_id .... – davecon 2012-01-06 12:12:26

+0

没错。实际上,检测资源服务器(RS--目标OAuth安全RESful API)的异常事务之外的恶意使用client_id会非常棘手。 – 2012-01-06 16:16:49

2

通常,client_id与网站的网址相关联 - OAuth回复/重定向只会发送到注册网址。因此,攻击者将无法在自己的站点上收到请求的结果(除非您的攻击者页面和攻击者页面位于同一个域中)。

+0

这适用于网页只应用,怎么样的设备? – davecon 2012-01-04 18:28:42