我理解尝试从提供者的角度使用OAuth进行身份验证的安全问题。然而,我被要求为用户提供使用OAuth登录到新Web应用程序的功能,并从Google和Twitter等用户中获取他们的基本身份信息,从中创建客户端应用程序中的新用户帐户。此外,用户可以通过用户/密码直接注册/登录,以便任何不想使用第三方帐户的人使用。OAuth身份验证客户端安全问题
我们不需要任何访问用户的详细信息/提供者API,只是他们初次登录时的基本身份,当然也不允许他们在将来通过提供者登录。并不完全是OAuth的用例,OpenId将是首选,但OAuth已被指定,并且不需要有效的关注。
我的问题是,它是多么安全,它假设用户已正确认证自己与相关的供应商。如果我相信Google说要执行足够的身份验证,并且我获得了访问令牌和他们的身份,那么推测我可以认为这是合法用户?如果有人能够访问资源所有者机器并在浏览器中保存密码,显然存在问题,但是那些选择直接注册的用户会遇到问题。
假定有可能伪造访问令牌,例如,中间的人假装是谷歌? MITM可以伪造访问令牌并提供与注册用户的Google ID匹配的身份详细信息?我没有看到任何客户知道这些信息绝对来自提供者。很明显,这个问题并不是OAuth独有的。
有没有另一种方式有人可以非法访问一个使用OAuth的帐户验证自己。
首先,接入令牌是特定于应用程序和** **不最终用户。要获取访问令牌,应用程序必须注册到服务提供商。其次,OAuth对用户身份验证过程没有任何引用**,用户身份验证仅用于允许用户接受应用程序是否可以访问其受保护资源。那么,如果应用程序本身从未被服务提供商注册过,伪造访问令牌的方式是否真的适合? –
很明显,应用程序将被注册。我曾想过,如果有东西可以拦截通信给OAuth提供商,他们可以假装成它们,返回一个随机令牌,然后在请求时提供一个捕获的Google ID。谷歌永远不会联系,应用程序'假设'用户已经去谷歌和身份验证。从我所看到的客户端无法验证来自Google的令牌。 – vickirk