9

有谁知道应该进行哪些配置来授予 Google 服务帐户对已创建的团队云端硬盘的访问权限?

这个想法是在 .NET 后端应用程序中使用服务帐户向公司员工共享的 Team Drive 上传/下载文件。例如,公司拥有自己的company.com域并name.surname@company.com在 Google 提供用户帐户。还有一个员工的团队驱动器。其中一个帐户(不是管理员)用于创建服务帐户,到目前为止已完成以下步骤:

  • 在 Google Cloud Platform 中为组织创建项目
  • 启用 Google Drive API
  • 创建了一个服务帐户
  • 为该服务帐户创建了一个密钥
  • 在 IAM 选项卡中分配的编辑者/所有者角色
  • 使用 G Suite 管理员帐户在此处描述的使用客户端 ID 为服务帐户启用 G Suite 域范围委派。

我在文档中找不到任何关于如何授予服务帐户访问团队云端硬盘的信息,以便所有有权访问团队云端硬盘的用户都可以看到所有上传的文件/文件夹。非常感谢任何有关如何做到这一点的有用链接。

目前,当我使用服务帐户创建文件夹或上传文件时,它会将它们放在仅属于服务帐户的私有驱动器中。

可能有一个可能的解决方法:将文件上传到服务帐户的私人驱动器并与用户共享(这不是要求的首选),但是,如果有人告诉我该怎么做,我会很高兴。

4

1 回答 1

11

除了问题中的步骤之外,以下是根据评论中的文档授予访问权限的步骤。

这些步骤需要具有服务和应用管理员角色的帐户。

  • 登录 Google 管理员并转到应用程序 -> Google G Suite -> 云端硬盘和文档 -> 共享设置子菜单,然后从共享选项中选择开启
  • 单击“管理团队云端硬盘”子菜单,然后单击您要授予访问权限的团队云端硬盘
  • 成员访问弹出窗口中单击添加成员
  • 输入服务帐户帐户 ID(电子邮件),选择访问级别(我选择完整),检查跳过发送通知并单击发送

假设身份验证部分设置正确,这是一个获取服务帐户的团队驱动器的简单代码:

var teamDriveList = service.Teamdrives.List();
    
teamDriveList.Fields = "teamDrives(kind, id, name)";

var teamDrives = teamDriveList.Execute().TeamDrives;

if (teamDrives != null && teamDrives.Count > 0)
{
    foreach (var drive in teamDrives)
    {
        Console.WriteLine("{0} ({1})", drive.Name, drive.Id);
    }
}

更多关于Fields参数语法here

于 2017-04-06T19:51:06.837 回答