最近,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. 在这份文档中,他们说:
注意:尽管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密钥。那么,我们无法保持消费者密钥的机密性。