【问题标题】:How to Impersonate user in G Suite Using .Net API如何使用 .Net API 在 G Suite 中模拟用户
【发布时间】:2020-05-11 14:46:42
【问题描述】:

我正在使用 .NET google 客户端库中的 Google DRIVE API,并希望从服务帐户模拟用户。我读过许多其他面临同样问题的用户,但没有一个修复对我有用。下面是详细内容。

1) 创建服务帐号并启用 DWD 2) 下载的 JSON 文件 3) 添加了具有 API 范围的客户端 ID,我必须在管理 API 客户端访问时使用这些 ID 4)增加了对shard驱动器的权限 5)使用以下代码创建服务并从谷歌驱动器上传/获取数据

        string [] scopes=new string[]
         {
             driveservice.scope.drive,
             drivesercie.scope.drivefile,
             driveservice.scope.driveappdata,
             driveservice.scope.drivemetadata       
         };
GoogleCredential cred;
using(var stream=new FileStream(Keyfilepath,Filemode.open,FileAccess.Read))
{
    cred=GoogleCredential.FromStream(stream).createdscoped(scopes).createwithuser(UserEmail);
} 

这段代码使用相同的代码可以正常工作,但在出现错误后我刚刚更改/更新了 API 客户端范围。

我尝试过的。

1) 为同一个项目创建了新的服务帐户和客户端 ID,但出现相同的错误。(在完成 DWD 和更新 API 范围后等待 24 小时) 2) 使用客户端 ID(启用 DWD)创建了新项目和新服务帐户,但出现相同的错误。

错误:“unauthorized_client”,描述:“客户端未经授权无法使用此方法检索访问令牌。”,Uri:“”

谢谢

【问题讨论】:

    标签: .net google-workspace


    【解决方案1】:

    您可以尝试使用 P12 键的替代代码。

                String serviceAccoutnEmail = "serviceAccount@emailAddress";
                X509Certificate2 certificate = new X509Certificate2(@"pathToYourKeyFile.p12", "notasecret", X509KeyStorageFlags.Exportable);
                ServiceAccountCredential credential = new ServiceAccountCredential(new ServiceAccountCredential.Initializer(serviceAccoutnEmail)
                {
                    User = "user@toimpersonate",
                        Scopes = new[] { DriveService.Scope.Drive, }
                    }.FromCertificate(certificate));
    

    但是,我认为您的代码没有问题。

    • 确保在管理控制台(管理 API 客户端访问)中授权的范围与您在代码凭据中包含的范围相同。

    • 在管理控制台中重新授权客户端名称。客户端名称和范围的文本字段中不得有空格,作为一种安全措施,如果有任何空格,管理控制台将不会更正此问题并且从此客户端进行的 API 调用将失败。

    • 确保在 GCP 控制台的 API 仪表板上为您的新项目启用 Drive API。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-23
      • 2018-02-01
      • 2019-04-14
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 2018-08-07
      • 2017-12-07
      相关资源
      最近更新 更多