簡體   English   中英

安全的LDAP身份驗證?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM