在 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 的學員會保留,因此請講師在每月匯入名單等時候,於學員畫面中將其暫停或終止使用。
- 若一定要自動同步,可以在 Google 前面加上 Okta 或 Microsoft Entra ID,就能使用 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。用戶端密碼之後可能無法再查看。忘記記下時,請在該用戶端的頁面新增用戶端密碼,再替換。
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 的允許網域這 2 處篩選。兩者都請務必設定。
4. 名單與小組
- Google Admin console → Directory → Users → Download users(CSV)。
- 用試算表軟體開啟,整理成姓名(姓與名合併為 1 欄)、電子郵件地址、部門(例如 Org Unit Path,改成容易理解的名稱)這 3 欄,並把標題改成這些名稱。Google 的標題(例如 Email Address [Required])無法直接讀取。
- 在 Aiyori 的學員畫面 → 於「批次登記」貼上,或選擇 CSV →「檢查」→ 登記。部門欄會成為小組(每次最多 1,000 人)。
- 每次有人到職或調動時(或每月),重複相同的步驟。同一個人只會被更新,不會重複(依員工編號 → 電子郵件地址的順序辨識)。
5. 連接當天要確認的事
- 能用公司帳號進入。第一次登入的人會登記為學員。
- 公司以外的 Google 帳號(個人的 gmail.com)會在 Google 的畫面被擋下(因為同意畫面設為 Internal)。即使沒被擋下,也無法進入 Aiyori(因為沒有 hd)。
- Google 帳號已停用的人,無法用公司帳號進入。
Google Workspace 與 Aiyori 的搭配方式
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 辨識為同一個人。
