我想将域范围的委派与 Google Cloud Function 的附加服务帐户(又名功能身份)一起使用。我正在为 Node.js 使用 Google Auth Client 库。
管理服务帐户密钥的最佳做法不鼓励使用服务帐户密钥进行域范围的委派:
尽管说明使用域范围委派的示例通常建议使用服务帐户密钥,但不必使用服务帐户密钥来执行域范围委派。
在另一个最佳实践文档中,特别建议使用客户端库来获取访问令牌:
要在应用程序中获取访问令牌,请尽可能使用客户端库。客户端库会自动检测应用程序是否在具有附加服务帐户的计算资源上运行。
然而,使用API构建和签署 JWT的建议过程signJWT
是手动的并且相当麻烦。
毕竟,使用服务帐户密钥通过 JWT 模拟用户非常简单:
const auth = new google.auth.JWT({
subject: 'user@workspaces-domain.com',
keyFile: '/path/to/keyfile.json', // <== Use attached service account instead
scopes: [...]
})
const api = google.calendar({ version: 'v3', auth })
我想知道是否有更简单的方法可以使用 Node.js 的 Google Auth 库来实现这一点。