以自訂的 OAuth 應用程式連接 Google Workspace
在自己的 Google Cloud 專案註冊應用程式,選擇 Offision 觸及的範圍,再把憑證交給它。 適用於不接受第三方應用程式的安全政策。
大多數組織應該使用 快速連接,它使用 Offision 自己的 Google 應用程式,完全不需要任何憑證。
當那個做法不被接受時才走這條路——當安全政策要求應用程式必須放在你自己的 Google Cloud 專案、密鑰由你掌控且可隨時撤銷——或者當你想要比預設更窄的模式。
需要準備
- 一個 Google Cloud 專案,或建立它的權限
- 你的 Google Workspace 客戶 ID,位於 Google 管理主控台的 帳戶 → 帳戶設定
- 一個可以把重新導向 URI 貼回 OAuth 用戶端的環境
- 半小時
1. 準備 Google Cloud 專案
先做這一側。Offision 無法替你驗證其中任何一項,事後才做代表要來回好幾趟。
- 在 Google Cloud 主控台建立專案。名稱僅供你自己識別,Offision 不會使用。
- 在 API 和服務 中啟用 Google Calendar API。
- 建立 OAuth 同意畫面,類型選 外部,並加入
userinfo.email、userinfo.profile、openid與 Calendar 這幾個範圍。 - 在 憑證 中建立類型為 網頁應用程式 的 OAuth 用戶端 ID。複製它的 用戶端識別碼 與 用戶端密鑰——密鑰最好現在就複製。
Offision 向 Google 要求的範圍就是以下這些:
| 範圍 | Offision 的用途 |
|---|---|
https://www.googleapis.com/auth/calendar.readonly | 讀取房間與使用者的日曆 |
https://www.googleapis.com/auth/calendar.events | 建立與修改預約 |
openid、profile、email | 讓人登入 |
2. 加入重新導向 URI
回到 OAuth 用戶端,在 已授權的重新導向 URI 中加入你的部署所需的項目。{server} 是
你的 Offision 位址:
| 重新導向 URI | 用途 |
|---|---|
{server}/api/google-api/oauth/callback | 委派帳戶與預約代理帳戶 |
{server}/signin-google/{tenantId}/{scheme} | 單一登入 |
{server}/api/google-api/oauth/meet-callback | Google Meet 連結 |
Offision 會直接顯示要複製的完整值,不必自己拼湊。缺少重新導向 URI 會在之後才出問題, 而且看起來像密碼被拒絕而不是少了 URI——所以它自成一個步驟。
3. 選擇模式
開啟 Google Workspace 磚,選擇 連接到 Google Workspace,然後在分隔線下方選擇 自訂設定。
開啟系统集成第一步是選模式。按鈕下方的 功能 顯示所選模式能做什麼,權限需求 則列出它會要求的 範圍——按 顯示詳細資料 可以展開。
| 模式 | 房間日曆 | 使用者日曆 | 單一登入 |
|---|---|---|---|
| 完整模式 | 是 | 是 | 是 |
| 標準模式 | 是 | 是 | 是 |
| 資源日曆模式 | 是 | 否 | 否 |

模式選擇畫面,含功能清單與該模式要求的權限。
資源日曆模式 完全不碰個人日曆,而且單一登入在這個模式下是無法使用而非被關閉。 當存取員工日曆無法通過安全審查時就選它,並預期之後看不到登入設定項目。
4. 輸入憑證
按 下一步,填入三個欄位:
| 欄位 | 來源 |
|---|---|
| Google 客戶 ID | Google 管理主控台 → 帳戶 → 帳戶設定 |
| Google 用戶端識別碼 | 步驟 1 建立的 OAuth 用戶端 |
| Google 用戶端密鑰 | 該用戶端的 密鑰,不是它的識別碼 |

憑證輸入畫面:客戶 ID、用戶端識別碼與用戶端密鑰。
5. 雙向確認
連接委派帳戶與一間房間——請參閱 連接 Google Workspace 的房間——然後雙向測試:
- 在 Offision 預約該房間,確認它出現在 Google 日曆
- 從 Google 日曆預約同一間房間,確認它出現在 Offision
接著設定 登入 與 Google Meet 連結。
出問題時
| 你看到的狀況 | 常見原因 |
|---|---|
| 連接 成功但接著 Google 視窗拒絕 | 用戶端識別碼或密鑰錯誤——連接時並不會檢查 |
| Google 說重新導向 URI 不符 | URI 沒加進 OAuth 用戶端,或多了一個結尾斜線 |
| Google 說存取被封鎖或應用程式未驗證 | OAuth 同意畫面尚未完成,或範圍沒有加進去 |
| Google 視窗該開卻沒開 | 瀏覽器擋掉了彈出視窗 |
| 登入後又回到登入頁 | OAuth 用戶端缺少登入用的重新導向 URI |
| 之後卡片上沒有登入設定 | 選了資源日曆模式,它不帶登入權限 |
| 本來正常,幾個月後停了 | OAuth 用戶端的密鑰被輪換,或同意畫面被重設 |
| 使用者完全不同步 | 正常——Google 使用者同步無法使用,請用一般方式新增 |

