使用微軟 Entra ID(Microsoft Entra ID)進行 Captive Portal 認證

選項
Zyxel_Kenny
Zyxel_Kenny 文章數: 126 image  Zyxel Employee
First Comment Friend Collector Fifth Anniversary

這篇文章主要說明如何在 USG FLEX H 系列設備上,利用微軟 Entra ID(Microsoft Entra ID)的 OIDC 協議來設定 Captive Portal 認證。

內容涵蓋了如何在微軟 Entra ID(Microsoft Entra ID)中註冊應用程式,以及啟用 OIDC 認證所需的防火牆設定;設定完成後,使用者就能直接用現有的微軟帳號登入,不需要再使用本地端的帳號密碼了。

image.png

開始之前的準備工作

在開始設定之前,請確認你已經準備好以下項目:

  • 有效的身分驗證提供者(IdP)授權:必須擁有微軟 Entra ID(Microsoft Entra ID)的有效授權。
  • 網路連線:你的設備必須能連上微軟 Entra ID(Microsoft Entra ID)。
  • SSL 憑證設定正確:憑證必須配置妥當。
  • 防火牆的 DNS 與 HTTPS 存取:確保防火牆能正常使用 DNS 解析與 HTTPS 連線。
  • 兩組 FQDN 網域名稱
    • FQDN 1(用於 OIDC 重新導向位址):需解析到你的 WAN IP。
    • FQDN 2(用於 Captive Portal 伺服器):需解析到你的 Captive Portal 伺服器位址(預設是 6.6.6.6)。
  • 受信任的憑證:憑證必須由受信任的憑證授權中心(CA)簽發。
  • 憑證名稱包含上述 FQDN:憑證的通用名稱(CN)和主體別名(SAN)必須包含上述兩組 FQDN。

Captive Portal 使用 HTTPS 來保護使用者的認證流量,並支援將使用者重新導向到外部的身分驗證提供者(IdP),例如微軟 Entra ID(Microsoft Entra ID)。如果 SSL 憑證不受信任,或者與 Captive Portal 的網址不符,使用者的裝置會跳出瀏覽器警告,甚至直接阻擋認證流程。

支援的憑證類型

你必須使用以下其中一種憑證:

  • 公開(商業)CA 簽署的憑證
    • 大多數使用者裝置都會自動信任。
    • 推薦用於訪客網路或自帶設備(BYOD)的環境。
  • 內部 CA 簽署的憑證
    • 必須在所有使用者裝置上安裝並信任該內部 CA 的根憑證。
    • 適合用於公司集中管理的內部環境。

注意:不建議在 Captive Portal 認證中使用自簽憑證(Self-signed certificates)。

憑證命名要求

你的 SSL 憑證必須符合以下規範:

  • 通用名稱(CN)或主體別名(SAN)必須是一個完整網域名稱(FQDN)。
  • 該 FQDN 必須能解析到 Captive Portal 的伺服器位址。
    • 預設的 Captive Portal 位址為:6.6.6.6

範例:

  • FQDNportal.company.com
  • 憑證 CN 或 SANportal.company.com
  • DNS 解析portal.company.com6.6.6.6

上傳憑證到 USG FLEX H 系列設備

  1. 登入 USG FLEX H 系列的網頁管理介面。
  2. 前往 System(系統)> Certificate(憑證)
  3. 匯入你的 SSL 憑證與私鑰(private key)。
  4. 確認憑證狀態顯示為有效。
image.png

將憑證套用到 Captive Portal

  1. 前往 Captive Portal > Authentication Policy > Settings
  2. 找到 HTTPS / Server Certificate 設定選項。
  3. 選擇你剛剛匯入的憑證。
  4. 套用設定。

image.png

Authentication Proxy 設定

請前往 User & Authentication > User Authentication > Advance

為了避免在認證階段跳出憑證警告,這裡使用的憑證應該是由商業 CA 簽署的,或者是您內部的 CA 憑證(前提是該內部 CA 憑證已安裝在所有使用者的裝置上)。

此外,該憑證的通用名稱(CN)或主體別名(SAN)必須是一個 FQDN(完整網域名稱),且該 FQDN 必須能解析到您防火牆的 WAN IP 位址。

image.png

注意:請務必在您的「WAN 到 ZyWALL」安全策略(secure-policy)中,允許 Authentication Proxy 的通訊埠(預設為 TCP 1003)。

微軟 Entra ID(Microsoft Entra ID)

請前往 Entra ID Portal > App registrations(應用程式註冊) > New registration(新增註冊)。

image.png

在上方選單中,點選「新增註冊(+New registration)」。

image-3863a64451dc88-71f4.png

在「註冊應用程式(Register an application)」頁面上,請填寫以下資訊:

  • 輸入一個好辨識的應用程式名稱,例如「Captive-Portal」。
  • 在「支援的帳戶類型(Supported account types)」下方,選擇允許哪些微軟帳戶存取 USG FLEX H。
  • 請選擇「僅限此組織目錄中的帳戶(Accounts in this organizational directory only (Default directory only - Single tenant))」。
image.png

1.在 Redirect URI (optional)(重新導向 URI,選填) 下方,於 Select a platform(選取平台) 清單中選擇 Web。

旁邊的欄位暫時不需要輸入網址。

2.點選 Register(註冊)。

Microsoft Entra Portal 會顯示您剛建立的應用程式詳細資訊。

3.請記下下列資訊:

  • Application (client) ID
  • Directory (tenant) ID

稍後在防火牆(USG FLEX H)上新增微軟 Entra ID(Microsoft Entra ID)伺服器時,必須輸入這些資訊。

image-06b84e637a0bc8-74a0.png

請前往 Manage(管理) > Certificates & secrets(憑證與秘密),接著點選 New client secret(新增用戶端密碼)。

image-eb2bf4e989ed28-dc2e.png image.png

建立密碼後,請務必立刻複製該「密碼值(Value)」。之後在設定防火牆時,您會需要用到這組資訊。

image-ff1542e53bcbb8-dfed.png

在 USG FLEX H 系列上設定 OIDC

  1. 登入您的 USG FLEX H
  2. 前往 User & Authentication > User Authentication > Advanced
    1. 啟用 Authentication Proxy
    2. 將 HTTPS Port 設定為 1003
    3. 選擇 Server Certificate(伺服器憑證)
image-8aadcce25fcf8-0284.png

請檢視您的 Entra App 總覽頁面(Overview),您需要複製「Client ID」與「Tenant ID」來進行防火牆設定。

image-c3fdf263e68e8-12e0.png

請前往 User & Authentication > User Authentication > AAA Server,接著新增一個 OIDC Server

image-c4018fec2b4f68-360f.png

填寫伺服器詳細資訊

Issuer URL:https://login.microsoftonline.com/{Tenant ID}/v2.0

Client ID:{Client ID}

Client Secret:{Client Secret}(即您稍早在「Manage > Certificate & secrets」取得的密碼)

Redirect Address:{FQDN}

注意:重新導向 URI(Redirect URI)的主機名稱必須是 FQDN(完整網域名稱),且該 FQDN 必須與您防火牆上 Authentication Proxy 的憑證設定完全相符。

image.png

請將上述的「Redirect URL」複製起來,接著回到 Entra Portal 的 Overview(總覽) 頁面。

請進入您為防火牆建立的應用程式,在 Essentials(概要) > Redirect URIs 下方,點選 Add a Redirect URI。

接著依照順序點選 Add a platform(新增平台) > Web。

image-9105cb16be9e68-1954.png

請複製上述的「Redirect URL」,並回到 Entra Portal 的 Overview(總覽) > Add a Redirect URI > Add a platform。

接著進入 Add a platform > Web,在 Redirect URIs 欄位中,貼上您剛剛從 USG FLEX H 管理介面複製的 URL,最後點選 Configure。

image.png

請貼上網址。

image.png

請回到 USG FLEX H 的 OIDC Server 設定頁面,找到 Configuration Validation 區塊,然後點選 Test。

image-abba7ef00bbee8-86eb.png

您應該會看到「OIDC Authentication Successful」。

image.png

注意: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 的憑證)。

image.png

注意:請在您的「WAN 到 ZyWALL」安全策略(secure-policy)中,允許 Authentication Proxy 的通訊埠(預設為 TCP 1003)。

設定 Captive Portal 伺服器的憑證

  1. 前往 Captive Portal > Authentication Policy > Settings
  2. 設定 Redirect FQDN
  3. 選擇您先前準備好的 Server Certificate(伺服器憑證)(即對應 FQDN2 的憑證)。
image-cda1eb80e1666-552e.png

設定 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 項目。

設定步驟如下:

  1. 前往 System > DNS & DDNS > DNS
  2. 新增一筆 Address Record
  3. Hostname 欄位請留空。
  4. Domain 欄位選擇或點選 +Add 新增您的網域(例如 fqdn2.yourdomain)。
  5. IP address 欄位填入 6.6.6.6
  6. 點選 Apply(套用)
image.png

在 USG FLEX H 系列上設定 Captive Portal

  1. 前往 Captive Portal > Authentication Policy > Policy
  2. 點選 Add(新增) 建立一條 Policy,將其啟用(Enable),並設定策略的詳細條件(例如套用的介面或來源 IP)。
  3. Walled Garden List 區域中,點選 OIDC Providers 並選擇 Microsoft。(此步驟是為了允許未通過認證的裝置能連線至微軟進行驗證)。
  4. Sign-in Method(登入方式)Sign-on With 選項中,選擇 OIDC server
  5. 點選 Apply(套用)
image.png image.png

在 Sign-in Method(登入方式) 中,於 Sign-on With 選項選擇 OIDC server。

image-784596af68353-fb34.png

驗證:測試使用者登入

請確認 Captive Portal 能正確將尚未通過認證的使用者,重新導向到微軟 Entra ID(Microsoft Entra ID),並在驗證成功後給予網路存取權限。

  1. 將用戶端裝置連上網路。
  2. 開啟瀏覽器,進入 Captive Portal 頁面,接著點選「登入(Sign in)」。
image.png

確認是否重新導向至微軟登入頁面

image.png

認證成功,並取得存取權限。

image.png

成功連上網際網路。

image-09521884d8c6f-8825.png

前往 Network Status > Login Users > Login Users 檢查登入使用者狀態。

確認該使用者顯示為已透過 OIDC 成功驗證。

image.png