LDAP 身份驗證如何運作?

LDAP 身份驗證如何運作?

我已經閱讀了大量有關 LDAP 的信息,但有些內容我不明白。

假設我有一個 J2EE 應用程序,它能夠驗證本地用戶或 LDAP 用戶(互斥的替代方案)。在應用程式中指定 LDAP 伺服器 IP 位址、基本 DN 和連接 DN 以及密碼後,現在我的使用者可以使用其 LDAP 資訊登入。

現在,假設「myuser」和密碼「mypassword」登入應用程式。出現以下什麼情況?

  1. 應用程式接收登入要求,然後使用自己的憑證綁定到 LDAP,然後尋找「myuser」條目,並將「mypassword」與儲存在 LDAP 目錄中的密碼進行比較以查找匹配條目,然後允許或拒絕使用權。

  2. 應用程式接收登入要求,然後將「myuser」和「mypassword」憑證傳遞到 LDAP(綁定 DN 和密碼),然後根據收到的綁定操作回應,允許或拒絕使用者?

它到底如何運作?

答案1

據我了解(我不是這些問題的專家),它更像是 1 而不是 2,但並不完全如此。應用程式接收登入請求。它使用自己的憑證綁定到 LDAP,密碼以明文形式傳輸(這就是為什麼 LDAPS 或透過 TLS 升級的 LDAP 是一個好主意)。這些憑證必須具有足夠的權限,以便 LDAP 伺服器能夠搜尋與myuser的帳戶相關的各種儲存的參數,包括儲存的雜湊使用者密碼。

然後,應用程式會對mypassword使用者提供的 進行雜湊處理,並將其與從 LDAP 傳回的雜湊值進行比較。如果它們匹配,則它知道所提供的憑證是正確的,並且 myuser 通過了身份驗證;如果沒有,那就不會。

相關內容