我们希望使用Google Doc API来生成文档(在我们自己的业务帐户中),当我们的最终用户在我们的网站上做一些操作时。
问题是我们已经尝试实现了OAuth 2.0协议,正如v3.0协议文档中所建议的那样。apiClient::authentication方法执行重定向。这是一个主要问题,因为我们的用户不知道我们自己的业务帐户的访问权限。而且我们不想给他们任何访问权限;)
(换句话说,我们创建的应用程序不允许用户编辑他们自己的数据,而是与我们的数据交互,就像数据库一样。)
我读到过OAuth 2.0的要点是为了避免我们管理用户的凭据。我个人同意这个概念,但在我们的情况下,我们不想在用户的google帐户中进行身份验证……
那么,在不与最终用户交互的情况下获得有效身份验证的最佳方法是什么?
发布于 2011-09-20 04:49:36
你所描述的并不是三条腿的OAuth是如何设计来使用的。
3条腿的OAuth完全是关于委托身份验证的,其中用户(知道他的密码)可以授予对应用程序的有限和可撤销的资源访问权限。该应用程序永远看不到用户的密码。要安全地允许应用程序模拟用户,需要做大量的工作。
您可能希望使用(两条腿的) OAuth流,其中consumer_id/consumer_secret凭证嵌入到您的应用程序中。在这里,您的应用程序不会模拟您的最终用户,也不会涉及浏览器重定向。
下面是关于在谷歌应用中使用两条腿的OAuth的更多信息:http://googleappsdeveloper.blogspot.com/2011/07/using-2-legged-oauth-with-google-tasks.html
这是对3- vs两条腿OAuth的一个很好的描述:http://cakebaker.42dh.com/2011/01/10/2-legged-vs-3-legged-oauth/
发布于 2013-10-02 00:16:16
您将需要使用服务帐户。基本上,您是将对此帐户的访问硬编码到服务器应用程序中。然后,您可以使用共享来访问您想要的内容的收件人帐户。例如,您可以与服务帐户共享Google Doc或Analytics配置文件。
下面是一个完整的示例实现,说明如何设置服务帐户、登录并使用它。
更新2018-12-12:https://gist.github.com/fulldecent/6728257
发布于 2011-09-10 05:26:29
为什么不为您的业务帐户获取一个OAuth授权,并让所有用户都使用该帐户。因为听起来您希望每个人都访问一个帐户的数据,所以可以对最终用户隐藏详细信息。
访问令牌将由所有用户共享,它们将在没有对每个用户自己的帐户进行任何授权的情况下访问相同的帐户后端。
https://stackoverflow.com/questions/7367449
复制相似问题