在过去的几年里,我一直在与OAUTH 2合作。我有几个授权服务器和几个使用它们的客户端。
任何使用OAUTH2制作应用程序或某个客户端解决方案的人都知道客户端机密可能存在问题。可以通过使用访问代码授权来缓解这种情况。有人谈到使用代理来保密。
我的问题是关于重定向URI - 这是为了保护访问代码授予流程。 Auth服务器仅将访问代码返回到文件中的重定向(在该客户机ID的数据库中)。这个问题与移动应用程序一起发挥作用。对于重定向URI,它们通常依赖于https://127.0.0.1或https://localhost。任何人都可以获得localhost令牌,对吗?
在这种情况下,是什么阻止某人使用localhost重定向URI模拟clientID?我是不是可以制作一个复制猫应用程序,使用真实客户端ID在流中使用相同的OAUTH2登录,如果我能够让用户登录,我现在有一个OAUTH令牌来访问资源服务器。我错了吗?
如果有人能够对此有所了解,我将非常感激。我想尽可能多地学习,有什么帮助。
答案 0 :(得分:3)
当您使用本机移动应用程序的授权代码授权时,您描述的攻击是一个已知的弱点。一个名为"代码交换的证据密钥的OAuth 2.0扩展程序"已经开发出来通过使用“代码验证程序”来减轻这种威胁。这是动态生成的,只有真正的客户端才知道。
这项工作在IETF中被标准化为OAuth公共客户端的代码交换证明密钥,可在以下网址获得:https://tools.ietf.org/html/rfc7636