एक बार, दक्षिण अमेरिका में एक सुंदर गर्म आभासी-जंगल था, और एक विद्रूप सर्वर वहां रहता था। यहाँ नेटवर्क की एक अवधारणात्मक छवि है:
<the Internet>
|
|
A | B
Users <---------> [squid-Server] <---> [LDAP-Server]
जब Usersइंटरनेट तक पहुंच का अनुरोध किया जाता है, squidतो उनका नाम और पासपोर्ट पूछें, उनके द्वारा प्रमाणित करें LDAPऔर यदि लैडैप ने उन्हें मंजूरी दी, तो उसने उन्हें अनुमति दी।
जब तक कुछ स्निफ़र्स ने उपयोगकर्ताओं और स्क्वीड [पथ A] के बीच का मार्ग चुरा लिया, तब तक हर कोई खुश था। यह आपदा इसलिए हुई क्योंकि स्क्वीड Basic-Authenticationविधि का इस्तेमाल किया गया था ।
जंगल के लोग समस्या को हल करने में जुट गए। कुछ bunnies NTLMविधि का उपयोग कर की पेशकश की। पसंद सांप Digest-Authenticationजबकि Kerberosपेड़ों से सिफारिश की।
आखिरकार, जंगल के लोगों द्वारा पेश किए गए कई समाधान और सभी भ्रमित थे! सिंह ने स्थिति को समाप्त करने का फैसला किया। उन्होंने समाधान के लिए नियमों को चिल्लाया:
- समाधान सुरक्षित हो जाएगा!
- अधिकांश ब्राउज़रों और सॉफ्टवेयर्स के लिए समाधान का काम करेंगे (जैसे डाउनलोड सॉफ्टवेयर्स)
- समाधान सरल होगा और अन्य विशाल उपतंत्र (जैसे सांबा सर्वर) की आवश्यकता नहीं है
- विधि विशेष डोमेन पर निर्भर नहीं होगी। (उदा सक्रिय निर्देशिका)
फिर, एक बंदर द्वारा पेश किया गया एक बहुत ही गूंज-व्यापक-चतुर समाधान, उसे जंगल का नया राजा बनाता है!
क्या आप अनुमान लगा सकते हैं कि समाधान क्या था?
सुझाव:
के बीच पथ squidऔर LDAP, शेर के द्वारा संरक्षित है तो समाधान यह सुरक्षित करने के लिए नहीं है।
नोट: अगर कहानी उबाऊ और गन्दा है, तो क्षमा करें, लेकिन यह वास्तविक है! =)
/~\/~\/~\ /\~/~\/~\/~\/~\ ((/~\/~\/~\/~\/~\)) (/~\/~\/~\/~\/~\/~\/~\) (//// ~ ~ \\\\) (\\\\( (0) (0) )////) (\\\\( __\-/__ )////) (\\\( /-\ )///) (\\\( (""""") )///) (\\\( \^^^/ )///) (\\\( )///) (\/~\/~\/~\/) ** (\/~\/~\/) *####* | | **** /| | | |\ \\ _/ | | | | \_ _________// Thanks! (,,)(,,)_(,,)(,,)--------'
अपडेट करें:
मस्सिमो ने समझाया कि Users- squidऔर squid- के बीच की प्रामाणिक विधि LDAPसमान नहीं है। हम उपयोगकर्ताओं से प्रमाणीकरण जानकारी प्राप्त करने के लिए मध्यस्थता विधि का उपयोग कर सकते हैं और प्रमाणित एकत्रित डेटा के लिए मध्यस्थ विधि।
लेकिन एक समस्या है: सभी प्रकार के प्रमाणीकरणकर्ताओं का इनपुट / आउटपुट समान नहीं है। उदाहरण के लिए:
- एक
Basicप्रमाणीकरणकर्ता को एक पंक्ति में "उपयोगकर्ता नाम पासवर्ड" पढ़ना चाहिए और उत्तर देना चाहिए किOKक्या उपयोगकर्ता-पास सही है याERR - एक
Digestप्रमाणक को पढ़ना चाहिएusername:realmऔर एकHA(A1)या एक हेक्स-एनकोडेड का जवाब देना चाहिएERR।
ग्राहक-स्क्वीड विधि और स्क्वीड-एलएडीपी विधि के बीच कोई सीधा संबंध नहीं है, क्लाइंट से एकत्रित डेटा स्क्वीड-लेडैप भाग में उपयोग की जाने वाली विधि के साथ संगत होना चाहिए। इसलिए, यदि हम उपयोगकर्ता-पक्ष में प्रमाणीकरण विधि बदलते हैं, तो हमें शायद अपने प्रमाणक को भी बदलना चाहिए।
तो समस्या सरल हो जाती है:
पहले स्तर में, मैं (बंदर!) उपयोगकर्ता-पक्ष में एक अच्छी प्रमाणीकरण पद्धति की तलाश कर रहा हूं। आप कौन सी विधि सुझाते हैं जो अधिकांश ब्राउज़रों द्वारा सुरक्षित और समर्थित है ? मैं के बीच उलझन में हूँ
NTLM,KerberosऔरDigest।जहाँ मुझे एक प्रमाणक मिल सकता है जो चयनित विधि की प्रमाणिक जानकारी का समर्थन करता है और LDAP के माध्यम से प्रमाणित करता है।