最近,Google 宣布他们正在支持 Gmail IMAP/SMTP 的 OAUth。我浏览了他们的多个文档,但我仍然对他们是否支持已安装应用程序的 OAuth 感到困惑。
1. 在本文档中,他们说:
注意:虽然 OAuth 协议支持桌面/已安装应用程序用例,但 Google 仅支持 Web 应用程序的 OAuth。
但他们也有一个用于已安装应用程序的 OAuth文档。
2. 当我阅读他们指出的OAuth 规范时,它说(在第 11.7 节中):
在许多应用程序中,消费者应用程序将处于潜在不受信任方的控制之下。例如,如果消费者是免费提供的桌面应用程序,攻击者可能能够下载副本进行分析。在这种情况下,攻击者将能够恢复用于向服务提供者验证消费者身份的消费者秘密。
另外我认为上面第 1 点的免责声明是关于Google Data APIs的,当然 IMAP/SMTP 不是其中的一部分。
我了解对于已安装的应用程序,我可以进行如下设置:
在 example.com 上为我的应用程序提供一个小型网络应用程序。这个与谷歌对话的网络应用程序获得了访问令牌。
安装的应用程序与 example.com 对话只是为了获取访问令牌。
安装的应用程序然后使用访问令牌与 Google 对话。
我现在很困惑。这是唯一的方法吗?此外,如果我从桌面应用程序执行 OAuth,我们必须将消费者密钥与应用程序一起发送。然后,我们无法保持消费者密钥的机密性。