google-api - 如何授权服务帐户访问 Google Admin API

标签 google-api google-admin-sdk service-accounts

我们正在尝试创建与 Google Admin SDK 的集成,以便能够在我们的域中检索、更新和创建帐户。但是,我们不断收到 403 错误,表明我们无权访问资源/api。

我们正在使用从启用了域范围的授权委托(delegate)和以下两个范围的服务帐户获得的凭据:
https://www.googleapis.com/auth/admin.directory.user.readonly , https://www.googleapis.com/auth/admin.directory.user .我们正在生成 JWT(也包括这两个范围),然后向 https://www.googleapis.com/oauth2/v4/token 发送请求检索访问 token 。

然后我们使用访问 token 向 https://www.googleapis.com/admin/directory/v1/users?domain=XXXX.com 发送请求。 .我们将访问 token 作为不记名 token 包含在 header 中。
在响应中,我们收到以下消息:

{
    "error": {
        "errors": [
            {
                "domain": "global",
                "reason": "forbidden",
                "message": "Not Authorized to access this resource/api"
            }
        ],
        "code": 403,
        "message": "Not Authorized to access this resource/api"
    }
}

是否有可能澄清我们做错了什么?

最佳答案

问题是 JWT 必须包含 sub字段:应用程序为其请求委派访问的用户的电子邮件地址。

关于google-api - 如何授权服务帐户访问 Google Admin API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57772484/

相关文章:

google-app-engine - 模式是否可以用于发送地址可配置的产品中

python - Google Apps Admin SDK 取消删除不起作用

google-cloud-platform - 尝试在 Deployment Manager 中创建服务帐户 key 时出错

php - 谷歌服务帐户示例返回 "Error refreshing the OAuth2 token { “error” : “invalid_grant” }"

android - Google Place API 并非无处不在(所有)

res(generated) 文件夹下的 Android Security : values. xml

google-admin-sdk - 目录 API,客户更新/补丁失败,错误为 "Invalid Customer language"

Terraform GKE 从私有(private) gcr 中提取问题

javascript - 使用 Google javascript API 进行身份验证

javascript - 如何使用 YouTube v3 API 检索 YouTube 视频的标签?