为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用谷歌SDK冒充用户?

如何使用谷歌SDK冒充用户?

Go
拉风的咖菲猫 2022-08-15 16:53:23
我有一个用户,我用它来查询报告 API。我生成了令牌并使用谷歌读取凭据。ConfigFromJSON 方法。虽然,现在我需要做同样的事情,但不是用户,我需要使用服务帐户。根据文档,我需要模拟用户,因为无法使用服务帐户调用API(如果我错了,请纠正我)。这是我为模拟用户所做的:impersonatedOption := option.ImpersonateCredentials("user@project.iam.gserviceaccount.com")credsOption := option.WithCredentialsFile("cert.json")scopesOption := option.WithScopes(admin.AdminReportsAuditReadonlyScope)httpClient, _, err := transport.NewHTTPClient(ctx,  scopesOption, credsOption, impersonatedOption)srv, err := admin.NewService(ctx, option.WithHTTPClient(httpClient))但没有成功:Get "https://admin.googleapis.com/admin/reports/v1/activity/users/all/applications/login?alt=json&eventName=account_disabled_spamming&prettyPrint=false": impersonate: status code 403: {  "error": {    "code": 403,    "message": "Request had insufficient authentication scopes.",    "status": "PERMISSION_DENIED"  }}服务帐户配置为超级管理员,应具有所有权限。
查看完整描述

1 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

我只需要加载证书,并设置能够模拟用户:Subject

    config, err := google.JWTConfigFromJSON(b, scope...)
    config.Subject = "impersonated_user@email.com"


查看完整回答
反对 回复 2022-08-15
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信