GKE Workload Identity 可以与域范围委派一起使用吗?

dde*_*dek 5 google-api-nodejs-client google-kubernetes-engine google-workspace workload-identity

我们一直在内部应用程序上使用Google Directory API来获取用户的个人资料。当我们进行身份验证时,我们一直在为服务和google-auth-library JWT类使用 json 密钥文件。服务帐户具有域范围委派来使用此端点。因此,访问令牌需要设置subject为工作区管理员。

const jwt = new JWT({
  email: key.client_email,
  key: key.private_key,
  subject: '<admin-email-address>',
  scopes: 'https://www.googleapis.com/auth/admin.directory.user.readonly',
})

const accessToken = await jwt.getAccessToken()
Run Code Online (Sandbox Code Playgroud)

我们的组织正在尝试不再使用服务帐户密钥文件,而是转向 GKE Workload Identity。我们可以使用应用程序默认凭据进行身份验证,在 中设置主题clientOptions

const auth = new GoogleAuth({
  scopes: 'https://www.googleapis.com/auth/admin.directory.user.readonly',
  clientOptions: {
    subject: '<admin-email-address>'
  }
})

const accessToken = await auth.getAccessToken()
Run Code Online (Sandbox Code Playgroud)

但是,创建的访问令牌没有设置主题。这意味着令牌无法访问 Directory API。

有没有办法使用 Workload Identity 创建一个令牌?