Sponsor mail透過regex就能做到特定網域Match,透過Regex可以使很多填寫項目都能限制在網路管理員的計劃之中。
透過Regex卻無法達到驗證是否電子信箱是否存在,如果搭配Sponsor確認,申請時可能一個字母填錯,Sponsor就收不到信,導致訪客帳號無法開通。
為此,在送出申請後透過LDAP檢測信驗證是否存在,將能做到讓訪客自助冊時填到不存在信箱時跳出錯誤提示,避免訪客填錯帳號。
※user11不存在於LDAP中,而user01存在,因此,user11會跳出錯誤提示不存在的帳號,而輸入user01就能通過Ldap驗證然後進入Sponsor確認。



警示
個人覺得透過RegexMatch即是資安角度上的平衡點,若會驗證訪客帳號是否存在,無異於將企業內部AD目錄攤在訪客帳號申請系統中,透過此申請系統,可以嘗試並取得公司員工的mail通訊錄,接著就能發釣魚信件了。
所以,為避免mail通訊錄暴露,只用RegexMatch驗證是否為企業網域,申請者無法確認mail是否真實存在。
Sponsor Confirm透過發送給Sponsor mail以及cc給it mail,這樣能避免Guest填錯時,Sponsor還能透過聯繫IT去確認,另一方面,不論任何訪客帳號申請,IT都會收到同樣一封信件作為備份。
參考連結
https://community.arubanetworks.com/discussion/validate-sponsor-email-against-ldap
流程
設定Plugin「LDAP Sponsor Lookup」決定哪個Field會經過LDAP Sponsor Lookup。
並在特定的Form中,透過插入並啟用Field「do_ldap_lookup」使Field「do_ldap_lookup」會帶入特定Field的值經過LDAP Sponsor Lookup檢查。
因此,若mail與AD帳號()相同或相關,就能透過輸入值(username)透過ldap尋找,如果有找到ldap(user),也意味著該mail也存在。
步驟
若要讓Sponsor mail經過LDAP檢驗,ClearPass已經有內部的驗證函數與插件,網管人員不需要撰寫中間的API,需要的資訊填寫後,就能做到這一點。
在「Administration > Operator Logins > Servers」設定LDAP Server,並且勾選User Search「Enabled」,這能讓插件「LDAP Sponsor Lookup」使用此Server進行查詢。
插件「LDAP Sponsor Lookup」的Configuration,可以定義Field「do_ldap_lookup」會將哪一個Field去做Ldap查詢。如果不使用原生的sponsor_mail,就需要到「administration > Plugin Manage > LDAP Sponsor Lookup」的Configuration中更改Field。
Ldap尋找只能透過Username,因此只能將特定網域做成不用輸入的後綴,好讓使用者只輸入username,藉此達成讓Ldap查詢。
由於具帶後綴,即便訪客只有填入Username,Sponsor mail然會透過填入的username與後綴組合,變成sponsor email,使Sponsor Confirm正常運作。
Administration > Operator Logins > Servers

Filter使用預設的或是自訂的都沒關係,因為我們是使用username做尋找,lookup模式只有使用username才能正確找到,用mail或是@都找不到該User。
Plugin Manage > LDAP Sponsor Lookup
在此可以修改Ldap尋找(do_ldap_lookup)時,帶入的值是使用哪一個Filed。


Field「do_ldap_lookup」
如果該Filed啟用,將會用Plugin「LDAP Sponsor Lookup」中設定的Field去尋找該值在LDAP Server是否存在。

Form透過Insert新增「do_ldap_lookup」
在特定的Self-Registrations自動產生或是特定的Form,將do_ldap_lookup加入並且啟用。
