2009-03-11 14 views
7

मैंने कुछ PHP-आधारित इंट्रानेट संसाधन बनाए हैं जिनके लिए उपयोगकर्ताओं को लॉग इन करने की आवश्यकता है। उपयोगकर्ता अपने स्वयं के लॉगिन बनाते हैं, और मैं सत्यापित करता हूं कि वे कुकी का उपयोग करके लॉग इन हैं।क्या एक PHP इंट्रानेट विंडोज लॉगिन साझा कर सकता है?

मुझसे पूछा गया है कि क्या मैं उस लॉगिन को अपने विंडोज लॉगिन में जोड़ सकता हूं। मेरी प्रारंभिक प्रतिक्रिया थी "एक वेब पेज आपके विंडोज लॉगिन तक नहीं पहुंच सकता - यह एक सुरक्षा जोखिम होगा।" लेकिन हमारे विभागों में से एक शेयरपॉइंट का उपयोग करता है, और यह वास्तव में विंडोज लॉगिन में खुद को जोड़ता है।

यह कैसे किया जाता है? क्या मैं इसे PHP में कर सकता हूं? यदि हां, तो यह एक भयानक सुरक्षा छेद क्यों नहीं है?

उत्तर

8

क्या आप के लिए देख रहे हैं PHP वेबसाइट के खिलाफ एनटीएलएम प्रमाणीकरण, जो पूरी तरह से करने योग्य है लेकिन ऐसा लगता है कि PHP में ऐसा करने का कोई भी तरीका नहीं है।

, http://siphon9.net/loune/2007/10/simple-lightweight-ntlm-in-php/

तुम भी IE में अपनी विश्वसनीय साइटों (या में जो भी ब्राउज़र का उपयोग कर रहे हैं समतुल्य) के लिए साइटें जोड़नी पर और भरोसेमंद साइटों के लिए सेटिंग्स में एक नज़र 'वर्तमान भेजने पर बारी उपयोगकर्ता नाम और पासवर्ड'।

यह एक भयानक सुरक्षा छेद नहीं है क्योंकि प्रमाण पत्र तार पर एन क्लेयर नहीं भेजे जाते हैं, और अंतिम उपयोगकर्ता ने विशेष रूप से ब्राउज़र को प्रश्न में वेबसाइट पर प्रमाण पत्र भेजने के लिए कहा है।

5

ताकि आप विंडोज 'सक्रिय निर्देशिका

SourceForge पर इस परियोजना नहीं है का उपयोग कर सकते पीएचपी, LDAP समर्थन हासिल है: adLDAP - "सक्रिय निर्देशिका के लिए PHP के साथ LDAP प्रमाणीकरण"

4

अक्सर यह एलडीएपी और एनटीएलएम के संयोजन का उपयोग करके किया जाता है। आईई और फ़ायरफ़ॉक्स जैसे ब्राउज़र एनटीएलएम प्रमाणीकरण कर सकते हैं, जो मुझे विश्वास है कि शेयरपॉइंट कैसे काम करता है। मैं जावा-आधारित पोर्टल एप्लिकेशन चलाता हूं जो प्रमाणीकरण के लिए उपयोगकर्ताओं और एनटीएलएम को सिंक करने के लिए एलडीएपी का उपयोग करता है।

जो आप बिल्कुल नहीं करना चाहते हैं, क्या उपयोगकर्ता ब्राउज़र में अपना डोमेन उपयोगकर्ता नाम और पासवर्ड दर्ज कर सकता है। पिछले कुछ वर्षों में मैंने विंडोज उपयोगकर्ताओं को प्रमाणीकृत करने के लिए एलडीएपी के साथ इस दृष्टिकोण का उपयोग करके कई परियोजनाएं देखी हैं। आप सही हैं, यह एक सुरक्षा चिंता है। उपयोगकर्ता को केवल एक बार अपना पासवर्ड दर्ज करना चाहिए: वर्कस्टेशन में लॉग इन करते समय। आखिरी चीज जो आप चाहते हैं वे कैश/अस्थायी फ़ाइलों में बैठे पासवर्ड हैं।

मैं क्षमा चाहता हूं कि मैं "यहां एक PHP ऐप के साथ ऐसा कैसे कर सकता हूं" उत्तर प्रदान नहीं कर सकता। जहां तक ​​मुझे पता है, इस समस्या का कोई जवाब नहीं है।

(एक चीज मैंने अतीत में की है, और मैंने वास्तव में यह देखने के लिए कभी भी जांच नहीं की है कि यह वैध या खराब रूप है, आईआईएस से PHP का उपयोग करना था। यदि आप आईआईएस का उपयोग कर रहे हैं, तो PHP सर्वर चर Windows उपयोगकर्ता के उपयोगकर्ता नाम (DOMAIN \ उपयोगकर्ता) के साथ REMOTE_USER। यह उस समय के लिए काम करता था जो मैं उस समय कर रहा था।)

संबंधित मुद्दे