【发布时间】:2012-09-08 16:04:40
【问题描述】:
我正在尝试了解是否可以在不涉及用户的情况下从传统的 Windows 服务访问 Google 云端硬盘。
按照https://developers.google.com/drive/quickstart 上的指南,我已经能够创建一个将文件上传到 Google Drive 的命令行应用程序。但是,此应用程序会启动 Web 浏览器并将我重定向到 Google 的授权服务器页面,该页面为我提供了必须在命令行应用程序中输入的授权代码。显然,这不适用于作为 Windows 服务运行的应用程序,它将尝试在不同时间将文件上传到 Google Drive。在我的场景中,根本不可能让用户参与超过一次,而那将是在设置期间。
据我所知,授权码只在短时间内有效。如果我稍后尝试重用它,我会得到一个异常。
在https://developers.google.com/accounts/docs/OAuth2,有可能的身份验证方案的描述。与我正在尝试做的事情相匹配的唯一场景是“服务帐户”场景。这允许应用程序在不涉及用户的情况下访问 Google 服务。但是,使用服务帐户的同一页面应用程序无法访问数据。
我的印象是 Google 不想打扰旧式身份验证(用户名/密码),因为这可能会导致安全问题。从安全的角度来看,在配置中存储用户/密码当然不是很好。我是否遗漏了什么,或者我正在尝试做的事情根本不受支持?
【问题讨论】:
标签: windows-services oauth-2.0 google-drive-api