桌面客户端的Gmail IMAP OAuth

3
最近,Google宣布他们支持Gmail IMAP/SMTP的OAUth。我浏览了他们的多篇文档,但仍然不确定他们是否支持安装应用程序的OAuth。
1. 在这份文档中,他们说:
注意:尽管OAuth协议支持桌面/安装应用程序用例,但Google仅支持Web应用程序的OAuth。
但是他们还有一份针对已安装应用程序的OAuth文档
2. 当我阅读他们指向的OAuth规范时,在第11.7节中写道:
在许多应用程序中,消费者应用程序可能会受到潜在的不受信任方的控制。例如,如果消费者是一个免费提供的桌面应用程序,攻击者可能能够下载副本进行分析。在这种情况下,攻击者将能够恢复用于将消费者认证到服务提供商的消费者密钥。
此外,我认为上述第1点中的免责声明是关于Google Data APIs的,当然IMAP/SMTP不是它们的一部分。
我了解到对于安装的应用程序,我可以设置如下:
1. 在example.com上有一个小型web应用程序,用于我的应用程序。这个Web应用程序与Google通信并获取访问令牌。
2. 安装的应用程序只与example.com通信以获取访问令牌。
3. 安装的应用程序然后使用访问令牌与Google通信。
现在我感到困惑。 这是唯一的方法吗? 此外,如果我从桌面应用程序执行OAuth,我们必须随应用程序一起发布Consumer Secret密钥。那么,我们无法保持消费者密钥的机密性。
1个回答

2
是的,OAuth支持安装程序;请参阅Gmail IMAP和SMTP使用OAuth文档。
  1. 文档已经过时(2008年)
  2. 它有意义,但仅适用于未以安全方式存储访问令牌的应用程序。

您的设置很好,尽管我认为没有必要拥有与Google通信的Web应用程序;例如,您的用户可以将“请求令牌”复制并粘贴到您的桌面客户端应用程序中。


桌面客户端仍应该随附消费者密钥,不是吗? - Sabya
“访问令牌”是每个用户的一个,它就像一个秘密密码(您需要使用所有安全措施存储),您的应用程序应该使用它从谷歌检索特定用户的数据。因此,我认为您的桌面客户端无法提供“消费者密钥”。 - systempuntoout
有道理,但只有在您存储了一个消费者令牌以访问云上的消费者数据时才有效。 - systempuntoout

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接