You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断用户集成的Google账号是Google Workspace(Gsuite)还是普通账号?

Google Workspace(原G Suite)账号校验方案

方案1:解析OAuth ID Token的hd声明(优先推荐,无额外API调用)

这是成本最低的校验方式,无需额外申请权限或发起接口请求:

  • 申请OAuth授权时只要包含openid或email scope,授权成功后获取到的ID Token会自带官方声明字段
  • Workspace账号的ID Token会包含hd(Hosted Domain)字段,值为用户所属Workspace的托管域名(例:yourorg.com)
  • 普通个人Google账号的ID Token不存在hd字段,直接判断该字段是否存在即可区分账号类型
  • 若需限制仅指定组织的Workspace账号接入,直接判断hd的值是否等于你的组织域名即可

示例代码(Node.js Google Auth Library场景):

const { OAuth2Client } = require('google-auth-library');
const client = new OAuth2Client(CLIENT_ID);

async function verifyWorkspaceAccount(token) {
  const ticket = await client.verifyIdToken({
    idToken: token,
    audience: CLIENT_ID,
  });
  const payload = ticket.getPayload();
  // 校验是否为Workspace账号
  const isWorkspace = !!payload.hd;
  // 若需限制仅指定组织,额外校验 payload.hd === 'yourorg.com'
  return isWorkspace;
}

注意:ID Token必须先通过Google官方校验逻辑验证签名、签发方、过期时间等有效性,避免伪造请求绕过校验。

方案2:调用Admin SDK Directory API校验(适合需获取更多组织信息的场景)

如果需要额外校验用户在组织内的角色、权限等信息,可以用该方案:

  • 申请https://www.googleapis.com/auth/admin.directory.user.readonly权限,该权限需要Workspace管理员授权
  • 调用GET https://www.googleapis.com/admin/directory/v1/users/{userEmail}接口
  • 普通个人账号调用该接口会返回404/403错误,Workspace账号会返回包含customerId、组织信息等完整的用户实体,可据此判断账号类型

内容的提问来源于stack exchange,提问作者Srichand Malladi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:15:00