我们在使用服务帐户访问代理商API时遇到问题。具有客户机密的示例运行良好,但是我们需要将其部署在k8s(Kubernetes
Engine)中,而无需定期刷新oauth会话(尤其是执行一次,因为在docker容器中有点难)。
尽管有很多关于如何使用python进行操作的文档,但我们找不到使用服务帐户进行访问的任何方法。
我们尝试了两个帐户,一个为默认计算引擎,一个为我们的用例直接创建。两者都在G Suite中获得了经销商范围。
https://www.googleapis.com/auth/apps.order,
https://www.googleapis.com/auth/admin.directory.user,
https://www.googleapis.com/auth/siteverification,
"googleapi: Error 403: Authenticated user is not authorized to perform this action., insufficientPermissions"
尽管使用时我们总是出错
client, err = google.DefaultClient(ctx, reseller.AppsOrderScope)
if err != nil {
log.Fatal("creating oauth client failed", zap.Error(err))
}
subs, err := client.Subscriptions.List().Do()
if err != nil {
log.Fatal("listing subscriptions failed", zap.Error(err))
}
我在StackOverflow上的一篇文章中读到,Reseller
API需要用户模拟,但是在整个Google上进行搜索以及使用oauth2和客户端库库都无法找到实现此目的的方法。Python就像端对端教程中所述
credentials = ServiceAccountCredentials.from_json_keyfile_name(
JSON_PRIVATE_KEY_FILE,
OAUTH2_SCOPES).create_delegated(RESELLER_ADMIN_USER)
但是对于Go,我找不到任何记录的方式来执行此操作。
通过使用其他配置解决了问题,然后设置了jwt.Subject显然可以模拟:
const envVar = "GOOGLE_APPLICATION_CREDENTIALS"
if filename := os.Getenv(envVar); filename != "" {
serviceAccount, err := ioutil.ReadFile(filename)
if err != nil {
log.Fatal("creating oauth client failed", zap.Error(err))
}
config, err := google.JWTConfigFromJSON(serviceAccount,
reseller.AppsOrderScope,
)
config.Subject = *impersonationUser // like user@google.com
client = config.Client(ctx)
}
是否可以使用服务帐户访问Google Admin Report SDK? 我有一个非常基本的例子,我正在尝试运行,我总是得到一个400错误返回。我已经验证了密钥和服务ID是正确的,我甚至已经将权限委托给这个服务帐户。难道这就是不可能吗?有人有什么想法吗? 返回的错误如下: {“代码”:401,“错误”:[{“domain”:“global”,“location”:“authorization”,“
我正在尝试使用Google Directory API验证组成员,但每次我发出请求时都无法通过403错误。 我使用的是一个服务帐户,我为它启用了“启用G套件域范围委托”选项。我还使用套件中的客户端ID添加了“https://www.googleapis.com/auth/admin.directory.user,https://www.googleapis.com/auth/admin.direc
我正在尝试使用谷歌api从gmail账户获取新邮件。然而,阅读文档时,我发现有两种类型可以访问api:第一种是未经授权(使用json凭据),第二种是服务帐户(使用p12证书和secretkey) 无法理解这两者之间的区别是什么?我到底应该用什么? 谢谢
我们正在尝试创建一个与谷歌管理SDK的集成,以便能够检索,更新和创建帐户在我们的领域。但是,我们不断收到一个403错误,表明我们没有被授权访问Resource/API。 我们正在使用从一个服务帐户获得的凭据,该帐户启用了域范围的授权,并且具有以下两个作用域:https://www.googleapis.com/auth/admin.directory.user.readonly,https://w
我正在尝试通过服务帐户(客户端电子邮件和p12证书)连接到google doubeclick api,使用python客户端库,如以下示例所示: http://code.google.com/p/google-api-python-client/source/browse/samples/service_account/tasks.py 它给我一个空access_token: 这有什么意义?我有没
问题内容: 我正在尝试访问Googles Contacts API,但由于获得授权而失败。从其他(网络)语言开始,我习惯于使用APIConsole和公共API密钥(授权)。 这样,我不能够刷新令牌并不能确定如何使用公共密钥的accessToken ......相反,我尝试了一个服务帐户: 这是我的例外: 谢谢提示! 问题答案: 不调用我的代码就可以很好地工作。但是您只会拥有一个模拟帐户(ser