GMAIL API - 它是否支持使用服务帐户和单个访问令牌进行访问

GMAIL API - Does it support access using service accounts and a single access token

GMail API 支持服务帐户吗?

我曾尝试使用服务帐户获取访问令牌,但是在使用该访问令牌时,我收到 "failed precondition" 错误。

在搜索时,我发现这个错误是因为服务帐户没有 gmail 邮箱,所以我应该使用域中用户的 JWT 中的 "sub" 字段。

但是,当使用子字段并为 Gmail 范围授权服务帐户时,我没有获得访问令牌。它说 "Invalid grant, bad request"

如有任何帮助,我们将不胜感激。


更新:我在使用子字段并使用令牌发出请求时已成功获取令牌。

但是,我无法使用一个令牌访问所有用户的数据。委托域范围的访问权限对我来说意味着我可以获得一个令牌并访问所有用户数据。

目前,我需要使用服务帐户和子字段中的每个用户来分别为每个用户获取访问令牌

在为不同的用户调用 Gmail API 之前,您只需为要访问的每个用户使用 sub= 进行单个身份验证调用以获取令牌。这就是 oauth2 域范围委托的工作方式: https://developers.google.com/identity/protocols/OAuth2ServiceAccount

"one token can access all users in the domain" 是一种可怕的安全措施,大多数 Google API 正在逐步淘汰(想象一下如果该令牌被钓鱼!)。