使用 Google 進行 Captive Portal 認證
Zyxel Employee
這篇文章說明如何在 USG FLEX H 系列防火牆上,使用 Google (OIDC) 來設定 Captive Portal 認證。內容涵蓋在 Google Workspace/Cloud 註冊應用程式的步驟,以及啟用 OIDC 認證所需的防火牆設定,讓使用者能直接使用現有的 Google 帳號登入,無須另外管理本機憑證。
開始之前
在開始之前,請確保您已具備以下條件:
- 有效的身分提供者授權 (Google Workspace/Cloud)。
- 您的裝置與 Google Workspace/Cloud 之間的網路連線暢通。
- 已正確設定 SSL 憑證。
- 防火牆具備 DNS 與 HTTPS 存取權限。
- FQDN1:用於 OIDC 重新導向位址 (Redirect Address),需解析為您的 WAN IP。
- FQDN2:用於 Captive Portal 伺服器,需解析為您的 Captive Portal 伺服器位址 (預設為
6.6.6.6)。 - 憑證必須由受信任的 CA (憑證授權單位) 簽發。
- 憑證的 Common Name (CN) 與 SAN (Subject Alternative Name) 必須包含上述兩個 FQDN。
Captive Portal 使用 HTTPS 來保護使用者認證流量,並支援重新導向至外部身分提供者 (IdPs,如 Google Workspace/Cloud)。如果 SSL 憑證不受信任或與 Captive Portal 位址不符,用戶端裝置的瀏覽器將會顯示警告,或直接封鎖認證流程。
支援的憑證類型必須使用以下其中一種憑證類型:
- 公用 (商用) CA 簽署憑證 (Public/Commercial CA–signed)
- 大多數用戶端裝置會自動信任。
- 推薦用於訪客 (Guest) 或 BYOD 環境。
- 內部 CA 簽署憑證 (Internal CA–signed)
- 必須在所有用戶端裝置上安裝並信任該內部 CA 的根憑證 (Root Certificate)。
- 適用於受管控的企業內部環境。
- 不建議使用自我簽署憑證 (Self-signed certificates) 進行 Captive Portal 認證。
憑證命名要求SSL 憑證必須符合以下要求:
- Common Name (CN) 或 Subject Alternative Name (SAN) 必須是完整的網域名稱 (FQDN)。
- 該 FQDN 必須能解析為 Captive Portal 伺服器位址。
- 預設 Captive Portal 位址:
6.6.6.6
- 預設 Captive Portal 位址:
- 範例:
- FQDN:
portal.company.com - 憑證 CN 或 SAN:
portal.company.com - DNS 解析:
portal.company.com→6.6.6.6
- FQDN:
上傳憑證至 USG FLEX H 系列
- 登入 USG FLEX H 系列的網頁管理介面。
- 前往 System > Certificate。
- 匯入 SSL 憑證與私鑰 (Private Key)。
- 驗證憑證狀態是否有效。
指派憑證給 Captive Portal
- 前往 Captive Portal > Authentication Policy > Settings。
- 找到 HTTPS / Server Certificate 設定。
- 選擇您剛才匯入的憑證。
- 套用設定 (Apply)。
Authentication Proxy (認證代理)
前往 User & Authentication > User Authentication > Advanced。
為了避免在認證階段出現憑證警告,此處應使用商用 CA 簽署的憑證,或者您必須將內部 CA 的憑證部署到所有用戶端裝置上。此外,憑證的 Common Name (CN) 或 SAN (Subject Alternative Name) 必須是能解析為您防火牆 WAN IP 的 FQDN。
注意:請在您的「WAN 到 ZyWALL」安全策略 (secure-policy) 中,允許 Authentication Proxy 的通訊埠 (預設為 TCP 1003)。
Google Workspace/Cloud 設定
前往 Google Cloud Console > APIs & Services > OAuth consent screen。
依照設定精靈輸入您的應用程式詳細資訊。建立一個專案名稱 (Project name)。
將 目標對象 (Audience) 設定為 Internal (內部),以限制僅授權的工作坊參與者可存取 API,並確保環境隔離。
注意:若選擇 External (外部) 類型,為了維持嚴格的存取控制,您必須在 Audience > Test Users 區塊限制登入權限。只有手動加入此白名單的 Google 帳號才會被授權存取應用程式。
輸入聯絡資訊並點選建立。
繼續透過設定精靈建立您的 OAuth 用戶端。
將 Application type (應用程式類型) 選擇為 Web application (網頁應用程式)。為您的用戶端指定一個容易識別的名稱。
在 USG FLEX H 系列上設定 OIDC
- 登入 USG FLEX H
- 前往 User & Authentication > User Authentication > Advanced
- 啟用 Authentication Proxy
- 將 HTTPS Port 設定為 1003
- 選擇 Server Certificate (伺服器憑證)
請檢視您的 OAuth Client ID 總覽,您需要複製「Client ID」與「Client secret」來進行防火牆設定。
前往 User & Authentication > User Authentication > AAA Server,接著新增一個 OIDC Server。
填寫伺服器詳細資訊:
Issuer URL: https://accounts.google.com
Client ID: {Client ID}
Client Secret: {Client Secret)
Redirect Address: {FQDN}
注意:重新導向 URI 的主機名稱必須是 FQDN,且該 FQDN 必須與您防火牆上 Authentication Proxy 的憑證設定完全相符。
複製上述的「Redirect URL」,回到 Google 的 OAuth 2.0 Client IDs 頁面,並貼上至 Authorized redirect URLs (已授權的重新導向 URI) 欄位中。
回到 USG FLEX H 的 OIDC Server 頁面,找到 Configuration Validation 區塊並點選 Test (測試)。
您應該會看到 "OIDC Authentication Successful" (OIDC 認證成功)。
注意:USG FLEX H 管理介面上的 Advanced Settings (進階設定) 是選填項目。
- Additional Scope: 指定 OIDC 認證請求中需要包含的額外範圍。若要請求多個範圍,請以空白鍵分隔。建議設定值為 email。
- Login Name Attribute: 設定用於登入使用者名稱的 user-attr-name 欄位。建議設定值為 email。
在 USG FLEX H 系列上設定 Portal Service
為了確保 Captive Portal 的認證過程順暢且安全,在設定 OIDC 認證之前,必須先妥善完成憑證與 DNS 的準備工作。
設定 OIDC 伺服器憑證
- 前往 User & Authentication > User Authentication > Advanced。
- 在 Server Certificate 欄位中,選擇您先前準備好的憑證 (FQDN1)。
注意:請在您的「WAN 到 ZyWALL」安全策略 (secure-policy) 中,允許 Authentication Proxy 的通訊埠 (預設為 TCP 1003)。
設定 Captive Portal 伺服器的憑證
- 前往 Captive Portal > Authentication Policy > Settings。
- 設定 Redirect FQDN。
- 選擇您先前準備好的 Server Certificate (伺服器憑證) (FQDN2)。
設定 Captive Portal 存取的 DNS 記錄
Captive Portal 認證需要滿足以下條件:
- 擁有一組專屬的 FQDN 供 Captive Portal 使用。
- 該 FQDN 必須能透過 DNS 解析到 Captive Portal 的伺服器位址 (預設為
6.6.6.6)。 - 用戶端裝置必須在進行認證之前,就能成功解析這組 FQDN。
情境 1:用戶端 DNS 指向內部 DNS 伺服器如果您的用戶端裝置是使用內部 DNS 伺服器 (例如 Active Directory DNS),請建立一筆 靜態 DNS 記錄 (static DNS record),將 Captive Portal 的 FQDN 解析到 Captive Portal 伺服器位址 (預設為 6.6.6.6)。
情境 2:用戶端 DNS 指向 USG FLEX H 系列如果您的用戶端裝置是將 USG FLEX H 系列當作 DNS 伺服器,請利用防火牆內建的 DNS 功能來設定靜態 DNS 項目。設定如下:
- 前往 System > DNS & DDNS > DNS。
- 新增一筆 Address Record。
- Hostname 欄位請留空。
- 在 Domain 欄位選擇或點選 +Add 新增您的網域 (例如
fqdn2.yourdomain)。 - 在 IP address 欄位填入
6.6.6.6。 - 點選 Apply (套用)。
在 USG FLEX H 系列上設定 Captive Portal
- 前往 Captive Portal > Authentication Policy > Policy。
- 點選 Add (新增) 建立一條 Policy,將其啟用,並設定策略的詳細條件。
- 在 Walled Garden List 區域中,點選 OIDC Providers 並選擇 Google。
- 在 Sign-in Method (登入方式) 的 Sign-on With 選項中,選擇 OIDC server。
- 點選 Apply (套用)。
驗證:測試使用者登入 (Verification)
請確認 Captive Portal 能正確將尚未通過認證的使用者,重新導向到 Google 登入頁面,並在驗證成功後給予存取權限。
- 將用戶端裝置連上網路。
- 開啟瀏覽器,進入 Captive Portal 頁面,接著點選 Sign in (登入)。
3. 確認是否重新導向至 Google 登入頁面。
4. 認證成功,並取得存取權限。
確認可以成功連上網際網路。
5. 前往 Network Status > Login Users > Login Users 檢查登入使用者狀態,確認該使用者顯示為已透過 OIDC 成功驗證。





























