
我已經閱讀了大量有關 LDAP 的信息,但有些內容我不明白。
假設我有一個 J2EE 應用程序,它能夠驗證本地用戶或 LDAP 用戶(互斥的替代方案)。在應用程式中指定 LDAP 伺服器 IP 位址、基本 DN 和連接 DN 以及密碼後,現在我的使用者可以使用其 LDAP 資訊登入。
現在,假設「myuser」和密碼「mypassword」登入應用程式。出現以下什麼情況?
應用程式接收登入要求,然後使用自己的憑證綁定到 LDAP,然後尋找「myuser」條目,並將「mypassword」與儲存在 LDAP 目錄中的密碼進行比較以查找匹配條目,然後允許或拒絕使用權。
應用程式接收登入要求,然後將「myuser」和「mypassword」憑證傳遞到 LDAP(綁定 DN 和密碼),然後根據收到的綁定操作回應,允許或拒絕使用者?
它到底如何運作?
答案1
據我了解(我不是這些問題的專家),它更像是 1 而不是 2,但並不完全如此。應用程式接收登入請求。它使用自己的憑證綁定到 LDAP,密碼以明文形式傳輸(這就是為什麼 LDAPS 或透過 TLS 升級的 LDAP 是一個好主意)。這些憑證必須具有足夠的權限,以便 LDAP 伺服器能夠搜尋與myuser
的帳戶相關的各種儲存的參數,包括儲存的雜湊使用者密碼。
然後,應用程式會對mypassword
使用者提供的 進行雜湊處理,並將其與從 LDAP 傳回的雜湊值進行比較。如果它們匹配,則它知道所提供的憑證是正確的,並且 myuser 通過了身份驗證;如果沒有,那就不會。