आपको लगता है कि लगता होगा सक्रिय निर्देशिका में उपयोगकर्ता को प्रमाणीकृत करना लाइब्रेरी की आवश्यकता के बिना PHP में एलडीएपी का उपयोग करके एक बहुत ही सरल प्रक्रिया होगी। लेकिन ऐसी कई चीजें हैं जो इसे बहुत तेज़ी से जटिल कर सकती हैं:
- आपको इनपुट को मान्य करना होगा। एक खाली उपयोगकर्ता नाम/पासवर्ड अन्यथा पास होगा।
- आपको यह सुनिश्चित करना चाहिए कि उपयोगकर्ता नाम/पासवर्ड बाध्यकारी होने पर उचित रूप से एन्कोड किया गया हो।
- आपको टीएलएस का उपयोग कर कनेक्शन एन्क्रिप्ट करना चाहिए।
- किसी के नीचे होने पर रिडंडेंसी के लिए अलग एलडीएपी सर्वर का उपयोग करना।
- प्रमाणीकरण विफल होने पर एक सूचनात्मक त्रुटि संदेश प्राप्त करना।
अधिकांश मामलों में उपरोक्त समर्थन देने वाली एलडीएपी लाइब्रेरी का उपयोग करना वास्तव में आसान है। आखिर में मैंने अपनी खुद की लाइब्रेरी को घुमाया जो सभी उपरोक्त बिंदुओं को संभालता है: LdapTools (ठीक है, प्रमाणीकरण के लिए नहीं, यह और भी कुछ कर सकता है)।यह निम्नलिखित की तरह इस्तेमाल किया जा सकता है:
use LdapTools\Configuration;
use LdapTools\DomainConfiguration;
use LdapTools\LdapManager;
$domain = (new DomainConfiguration('example.com'))
->setUsername('username') # A separate AD service account used by your app
->setPassword('password')
->setServers(['dc1', 'dc2', 'dc3'])
->setUseTls(true);
$config = new Configuration($domain);
$ldap = new LdapManager($config);
if (!$ldap->authenticate($username, $password, $message)) {
echo "Error: $message";
} else {
// Do something...
}
प्रमाणित कॉल ऊपर होगा:
- मान्य है कि न तो उपयोगकर्ता नाम या पासवर्ड रिक्त है।
- सुनिश्चित करें कि उपयोगकर्ता नाम/पासवर्ड ठीक से एन्कोड किया गया है (डिफ़ॉल्ट रूप से यूटीएफ -8)
- किसी के नीचे होने पर वैकल्पिक एलडीएपी सर्वर आज़माएं।
- टीएलएस का उपयोग कर प्रमाणीकरण अनुरोध एन्क्रिप्ट करें।
- में अतिरिक्त जानकारी अगर यह विफल रहा है (आदि यानी। लॉक/अक्षम किए गए खाते,) प्रदान करें
(इस तरह के Adldap2 के रूप में) भी यह करने के लिए अन्य पुस्तकालयों रहे हैं। हालांकि, मुझे कुछ अतिरिक्त जानकारी प्रदान करने के लिए पर्याप्त मजबूर होना पड़ा क्योंकि सबसे अधिक वोट देने वाला उत्तर वास्तव में कोई सुरक्षा सत्यापन नहीं है और टीएलएस का उपयोग नहीं कर रहा है।
मुझे लगता है कि ड्रूपल के पास – redben