【发布时间】:2014-03-23 15:33:39
【问题描述】:
我正在开发一个无法完全保护 OAuth 机密的应用程序;有一组用户将根据需要暴露给他们。所以想象一下这样的情况:
一家公司正在开发它为公众托管的软件,该软件依赖于 OAuth2 对某个第 3 方进行身份验证。但不可避免的是,该应用程序的 OAuth 机密将暴露给公司的所有员工。据推测,一些不良员工可能会将其用于邪恶目的或与其他人分享。
我最初倾向于认为这样的环境应该使用implicit OAuth2 工作流程,该工作流程不依赖于在服务器上保持秘密的密钥。然而,我读得越多,我就越倾向于相信authorization code 工作流实际上可能更适合这里,因为密钥——虽然没有完全保密——至少只暴露于“受信任”参与者的子集。
我认为authorization code 工作流程仅在无法完全保密密钥的环境中提高安全性是否正确? 是否引入了任何威胁如果秘密已被泄露,通过在implicit 工作流上使用authorization code?如果匿名/公共用户无法访问密钥,除了使用implicit 工作流而不是authorization code 更方便/简单之外,还有什么理由吗?
【问题讨论】:
-
感谢杰夫的赏金。
标签: ruby-on-rails security oauth oauth-2.0 google-oauth