我们一直在使用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()
我们的组织正在尝试从对服务帐户使用密钥文件转变为转向 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()
但是,创建的访问令牌没有主题集。这意味着令牌无法访问 Directory API。
有没有办法使用 Workload Identity 创建一个令牌?