本卡屬 FR-195(Agent 資安修正),第 1 批 F13。修 FR-186 掃描的 I2 F2(3/3 票),嚴重度:中。改的是 jedi-ldap 套件(Repo 欄:jedi-packages)。

這張卡做什麼(白話)

客戶用 OpenLDAP 登入時,系統拿使用者輸入的帳號名去目錄裡找人。現在的寫法是:找到幾筆都沒關係,直接拿第一筆、用它去驗密碼。如果目錄裡剛好有另一個人的名字欄位跟這個帳號名一樣,而且排在前面,他用自己的密碼就能登成別人。

改成:找到超過一筆就拒絕登入。正常情況下一個帳號名只會對到一個人,不受影響;只有目錄裡真的有重名時才會被擋,這時本來就不該讓系統亂猜是哪一個。

這個套件主系統登入與 Agent 主控台登入共用,改一處兩邊都修到。客戶的登入帳號、設定都不用變。

問題在哪(首腦開檔核過)

改哪些檔

jedi-ldap/jedi_ldap/infra/directory.py
jedi-ldap/tests/test_directory.py
jedi-ldap/pyproject.toml(版號)

怎麼做

行為變更

OpenLDAP 目錄裡若有兩筆以上條目的 cn 等於使用者輸入的帳號,這個帳號會登入失敗(訊息與帳密錯誤相同)。目錄管理員要把重名的條目處理掉。一般情況不受影響。要等這個套件發版、Agent 與主系統升到新版才生效(收尾待辦)。

要補的測試