使用Oauth2从已安装的应用程序管理员访问用户Google Drive文件

时间:2013-04-10 05:18:47

标签: c# google-api google-drive-api gdata gdata-api

我正在编写一组Powershell Cmdlet,允许用户在其域上运行管理功能。使用gData我已经能够进行配置调用以创建新用户,列表组和其他具有这种性质的东西。当我试图列出另一个用户的文档(作为管理员)时,我点击了包含DocsList api的包版广告,所以我转而使用Google Drive api。

我之后能够使用Drive API,并根据QuickStart for DotNetFile List Example运行Cmdlet。但是,我似乎无法弄清楚如何为其他用户创建列表文档。到目前为止,我发现的所有内容似乎point to use of Service Accounts for delegationusing the old DocList api instead depreciated支持Drive API。

我的问题是服务帐户似乎是已安装应用程序的替代品,而不是我可以同时使用的东西。或者,如果我能够让它工作,我必须让每个用户create their own project and service account,如果我理解的话。

如何在不给用户带来不便的情况下执行此操作?他们已经将自己认证为管理员,我不明白为什么他们必须创建一个API项目和服务帐户才能实现同样的目标。我会为我的API项目创建一个服务帐户吗?如果是这样,我如何处理它生成的公钥和needs access to?如果我扔掉密钥文件,这似乎不太安全。

1 个答案:

答案 0 :(得分:1)

您只能使用服务帐户模拟用户。为域范围的权限配置服务帐户后,您可以在提及时使用管理员帐户发出请求。但是,我不确定Google Apps是否允许多个管理员帐户。如果他们这样做,您只需要设置一个项目和一个服务帐户。