Facebook如何验证/授权其官方本地客户?

时间:2014-06-17 15:16:56

标签: security oauth oauth-2.0 authorization facebook-oauth

这个例子让我们坚持使用Facebook。

我觉得FB使用它自己的公共API(以及只有他们可以使用的内部API),并且当他们使用OAuth 2时,可以安全地假设他们有特殊的客户注册"是否允许使用资源所有者密码凭证授予

正如您所知,当从他们自己的官方应用登录Facebook时,他们不会弹出浏览器,询问您是否允许Facebook使用Facebook ,所以如果他们自己使用OAuth,他们如何安全地执行此操作?

我们都读过Twitter got their consumer keys leaked,Facebook如何避免这种情况?

我不是安全专家,也没有逆向工程方面的经验,我只是在自己实施OAuth授权服务器的情况下,我们希望将我们的API公开给第三方,但是,由于我们自己拥有"官方原生应用程序",我们希望使用资源所有者密码凭据授予,以获得最佳用户体验。

根据OAuth 2 spec,原生应用应包含客户机密,但这如何让事情变得更好?我看到它的方式,如果你不包含秘密,并且你的客户端ID被提取并用于密码授予,你可以撤销它的唯一方法是从授权服务器中完全删除客户端ID。

我错过了一些明显的东西吗? "大家伙"这样做?

1 个答案:

答案 0 :(得分:0)

最大的区别是,官方Facebook应用程序知道您的用户名和密码,因此无需弹出浏览器,因为它们可以直接进行身份验证。

作为第三方应用,我不能(好吧,我可以,但出于隐私原因,我不会)要求用户发送电子邮件和密码。作为官方应用程序,您可以执行此操作,从而直接执行登录(这可能通过未记录的REST端点发生)