星期四, 4月 24, 2014

Jenkins 又一難題:LDAP

為了讓 Jenkins 的使用者由 LDAP 接 AD 驗證,參考別人的設定硬是不行。因為每一家的 LDAP 有什麼內容都不會一樣,所以這題也解很久:原來雖然驗證通過了,但後來找使用者所屬群組(其實似乎沒必要)出問題,會導致丟給 acegisecurity 的驗證物件是空的,不過並沒有拋出例外,只有驗證失敗的結果,乍看起來與密碼打錯沒什麼不同,但一直追到很細的記錄才看出些端倪。有圖為證:
其實當初也不懂這有什麼異常,不過先是區分出密碼打錯絕不是長這樣,再苦思、狂搜,最後靈感來自於,狀況類似,多設一個群組的搜尋起點就解決了。

[2019/04/09]
沒想到改用 Single-Sign On 後的多年,還是有機會需要這篇,而且補上兩點:
  • 當 Jenkins 安裝在很舊的 Windows 上,中文可能不是 UTF-8,當做任何欄位設定內容都可能出錯,要儘量避免,例如 Manager DN 就可改為電子郵件格式。
  • 即使沒用到群組,不設群組的相關條件也可能造成問題,可以考慮至少要放個純英文的條件,找不到任何群組也無妨。

沒有留言:

張貼留言