跳到正文

Google Workspace

与 Google Workspace 连接
(SSO)

在 Google Cloud 项目中创建 OAuth 客户端,让员工可以用公司的 Google Workspace 账号登录 Aiyori(SSO,采用 OpenID Connect)。

通用的值和遇到问题时要检查的地方,见连接公司的身份管理平台页面。画面名称以 2026 年 10 月时 Google 各控制台中的名称为准。

能做的和不能做的

SSO(OpenID Connect)
可以。用公司的 Google 账号登录。
SCIM
不可以。Google Workspace 只会通过 SCIM 向 Google 目录中的应用发送人员。

代替 SCIM 的做法

  • 开启 Aiyori 的“尚未登记的人员登录时,将其登记为学员”。公司域名的人第一次登录时,会成为学员。
  • 要按部门等分组,或事先登记,请把从 Google Admin console 导出的名单,用 Aiyori 的“批量登记”(CSV)导入(见下面第 4 节)。
  • 离职的人,只要暂停其 Google 账号,就无法再登录。Aiyori 中的学员会保留,所以请在每月导入名单时等,由讲师在学员页面中暂停或终止使用。
  • 确实需要自动同步的公司,可以把 Okta 或 Microsoft Entra ID 放在 Google 前面,通过它们使用 SCIM。

需要准备的

  • 在 Google Cloud console(https://console.cloud.google.com)中,能在公司的组织内创建项目的人。
  • 不需要 Google Workspace Admin console 的超级管理员(Aiyori 只请求 openid email profile,不使用敏感范围)。
  • 不产生费用(OAuth 客户端免费)。

1. 项目和同意画面

  1. Google Cloud console → 顶部的项目选择器 → New Project → 名称设为 aiyori-sso,在 Organization 中选择公司的组织,然后 Create。
  2. Google Auth Platform(从菜单的 APIs & Services → OAuth consent screen 进入)→ Get started。App name 填 Aiyori,User support email 和联系方式填 IT 负责人的地址,Audience 设为 Internal,同意后 Create。
  3. Data Access 中什么都不用添加(openid、email、profile 一开始就能使用)。

Audience 设为 Internal 后,只有公司 Google Workspace 中的人才能登录。公司以外的 Google 账号会被拦在 Google 的画面上。

2. OAuth 客户端

  1. Google Auth Platform → Clients → + Create client。
  2. Application type 设为 Web application,名称设为 Aiyori。
  3. Authorized redirect URIs → + Add URI → https://app.aiyori.app/api/web/sso/callback。Authorized JavaScript origins 可以留空。
  4. Create → 记下 Client ID 和 Client secret。Client secret 之后可能无法再查看。如果忘了记下,请在客户端页面添加新的 Client secret 并替换。

3. 填入 Aiyori

在 Aiyori 的讲师画面 →“设置”→“连接公司的身份管理平台”→“SSO”中填入,然后按“保存”。

颁发者 URL(Issuer)
https://accounts.google.com
客户端 ID
第 2 节中记下的值(….apps.googleusercontent.com)
客户端密钥
第 2 节中记下的值
允许的邮箱域名
必须填写(为空则无法保存)。填入公司 Google Workspace 的主域名(如 example.com);如果员工邮箱还使用其他域名(辅助域名),也一并填入。每行 1 个。
自动登记
开启“尚未登记的人员登录时,将其登记为学员”(因为没有 SCIM)。

保存后,用 1 个公司账号登录确认(登录画面 →“使用公司账号登录”→ 组织代码 → 选择 Google 账号 → 回到 Aiyori)。管理员也可以用“自己试着登录”中的“用我的公司账号试一下”测试。

颁发者 https://accounts.google.com 对所有 Google 账号都相同。谁能登录,由两处限定:同意画面的 Internal,以及 Aiyori 的允许域名。两处都请务必设置。

4. 名单和小组

  1. Google Admin console → Directory → Users → Download users(CSV)。
  2. 用电子表格软件打开,整理为姓名(姓和名合为一列)、邮箱地址、部门(如 Org Unit Path,改成易懂的名称)这 3 列,并把标题改成这些名称。Google 原来的标题(如 Email Address [Required])无法直接读取。
  3. 在 Aiyori 的学员页面 → 在“批量登记”中粘贴或选择 CSV →“检查”→ 登记。部门列会成为小组(每次最多 1,000 人)。
  4. 每次有人入职或调动时(或每月),重复同样的操作。同一个人只会被更新,不会重复登记(先按员工编号、再按邮箱地址识别)。

5. 连接当天要确认的事

  • 能用公司账号登录。第一次登录的人会被登记为学员。
  • 公司以外的 Google 账号(个人的 gmail.com)会被拦在 Google 的画面上(因为同意画面为 Internal)。即使没被拦住,Aiyori 也不会让其登录(因为没有 hd)。
  • Google 账号已被暂停的人,无法用公司账号登录。

使用 Google Workspace 时的规则

Google 登录之后,Aiyori 会确认以下几点。

  • ID 令牌的颁发者(iss)为 https://accounts.google.com 或 accounts.google.com(Google 两种都会使用)。
  • hd(此人所在 Google Workspace 的主域名)是允许的域名之一。个人 Google 账号(gmail.com 等,没有 hd)和其他公司 Workspace 的人无法登录(即使误把同意画面设为 External,也会在这里被拦住)。
  • 邮箱地址(email)的域名也是允许的域名之一。email_verified 为 false 的人无法登录。
  • 第一次登录的人,如果开启了自动登记,会被登记为学员(ID 为邮箱地址中 @ 前面的部分,姓名为 Google 的显示名称)。从第 2 次起,按 Google 的 sub 识别为同一个人。