[英]Secure LDAP Auth?
我想對Active Directory服務器上的用戶進行身份驗證以訪問Web服務器。 但是我不希望將密碼明確發送到Web服務器。
我發現的所有解決方案都使用帶有普通密碼的POST請求,例如以下示例:
<?php
// using ldap bind
$ldaprdn = 'uname'; // ldap rdn or dn
$ldappass = 'password'; // associated password
// connect to ldap server
$ldapconn = ldap_connect("ldap.example.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}
}
?>
有沒有一種方法可以在客戶端對哈希密碼進行哈希處理,然后將令牌發送到用於認證LDAP服務器的后端?
PHP只是一個例子,我的問題不是特定於語言的。
如果您知道LDAP后端的哈希算法,則可以對javascript中的密碼進行哈希處理並將其僅發送給服務器。 這意味着盡管您的LDAp身份驗證腳本需要能夠讀取所有密碼哈希值,然后才能將它們與預先加密的密碼進行比較。
我認為,與通過TLS安全的HTTP連接(也稱為Https)將明文密碼發送到服務器(然后再通過tls安全的(ldaps或starttls)也使用默認綁定機制)的服務器相比,這樣做的風險更高。
而且,由於您不使用綁定機制,因此,密碼管理或鎖定密碼的所有可能的實施方式都很容易被direcrory-admin管理員使用和支持,因此現在也需要您自己重新構建和維護。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.