Aruba ClearPass Guest 從 LDAP 中驗證Sponsor mail是否存在 – 詳細攻略

上一篇文章《Aruba ClearPass Guest從LDAP中驗證Sponsor mail是否存在(20250826發現流程有誤) – JN的電腦網路日常》發布後,過一陣子,發現好像不是這麼一回事。近來工作繁雜,這一陣研究就停擺,交給其他同事進行。趁這陣子有空的時候,鑽研到最準確的樣子。

ClearPass Guest 可以設定 LDAP Server,意即 ClearPass Guest 要填的欄位是可以透過 LDAP 查詢去檢驗,如 Sponsor Mail 是否存在於 LDAP 中。

一個Mail是否存在於所有或特定User的Mail?是可以透過指令查詢,因此,用於 ClearPass Guest 上也會是可行的。

本文將會詳細解說 ClearPass Guest 與 LDAP 要如何搭配。

概述

員工在AD中,通常使用員工編號,如「u001」,作為帳號。

而mail可能為「jn@jnnetlab.com」,是改用名稱去命名,而非AD帳號,兩者可能不同。

如果要驗證 Sponsor mail,是否存在於 LDAP 中,就需要支援使用 mail 去搜尋。

而 Sponsor mail 確認存在,可以確保自註冊啟用信件寄送給正確的 Sponsor mail,而不會出現訪客申請成功但是卻因為Sponsor沒收到信件而苦等的場景。

為此,將會打造一個能夠驗證Sponsor mail是否存在於LDAP的ClearPass Guset Form。

範例帳號

sponsor_lookup v.s. do_ldap_lookup

sponsor_lookup: 依據輸入即時回傳結果,下拉式選單呈現結果,能指定一個特定的 LDAP Server。

do_ldap_lookup:隱藏,依據LDAP Server優先度,最小的優先。如果第一個Timeout才會換第二順序。如果do_ldap_lookup啟用並勾選必填,就一定要搜尋到才能通過。

兩者作用的機制不同,是獨立的,沒有誰影響誰的,選擇一套適合自己的環境去使用就好。

依據情境,今天只想要檢查輸入的email是否能查詢到?這是「檢查」行為,sponsor_lookup回傳結果仍需要透過點擊選擇,所以使用do_ldap_lookup,並將sponsor_mail與ldap中的mail對應,並將mail作為id,那麼id就會作為「@SEARCH@」關鍵字並搭配過濾語法搜尋LDAP了。如果沒有搜尋到,就會回應找不到符合的帳號。

mail 為 id + sponsor_mail 對應 mail => sponsor_mail 作為 @SEARCH@ 去搜尋LDAP

自訂 LDAP 查詢

官方文件《Create a LDAP server》

在LDAP Server設定時,ID為搜尋關鍵字「@SEARCH@」,如果mail為ID,則以mail去替換@SEARCH@,然後進行查詢。

這邊 id會做為查詢關鍵字,id也是回傳主要值,其他屬性都會是附於該ID之下。

新增完成後,下方使用「lookup test」檢查,勾選「Show detailed authorization info」,可以看到更多相關屬性。

實測

Sponsor mail不存在

使用「jn2@jnnetlab.com」

Sponsor mail存在

使用「jn@jnnetlab.com」,沒有被檢查出錯誤。