在 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. 项目和同意画面
- Google Cloud console → 顶部的项目选择器 → New Project → 名称设为 aiyori-sso,在 Organization 中选择公司的组织,然后 Create。
- Google Auth Platform(从菜单的 APIs & Services → OAuth consent screen 进入)→ Get started。App name 填 Aiyori,User support email 和联系方式填 IT 负责人的地址,Audience 设为 Internal,同意后 Create。
- Data Access 中什么都不用添加(openid、email、profile 一开始就能使用)。
Audience 设为 Internal 后,只有公司 Google Workspace 中的人才能登录。公司以外的 Google 账号会被拦在 Google 的画面上。
2. OAuth 客户端
- Google Auth Platform → Clients → + Create client。
- Application type 设为 Web application,名称设为 Aiyori。
- Authorized redirect URIs → + Add URI → https://app.aiyori.app/
api/ web/ sso/ callback。Authorized JavaScript origins 可以留空。 - 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. 名单和小组
- Google Admin console → Directory → Users → Download users(CSV)。
- 用电子表格软件打开,整理为姓名(姓和名合为一列)、邮箱地址、部门(如 Org Unit Path,改成易懂的名称)这 3 列,并把标题改成这些名称。Google 原来的标题(如 Email Address [Required])无法直接读取。
- 在 Aiyori 的学员页面 → 在“批量登记”中粘贴或选择 CSV →“检查”→ 登记。部门列会成为小组(每次最多 1,000 人)。
- 每次有人入职或调动时(或每月),重复同样的操作。同一个人只会被更新,不会重复登记(先按员工编号、再按邮箱地址识别)。
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 识别为同一个人。
