2009-10-06 12 views
6

ldap के खिलाफ उपयोगकर्ता की साख के लिए चेक नीचे इस कोडप्रमाणित ldap के खिलाफ पीएचपी, सक्रिय निर्देशिका का उपयोग कर, आईई/फ़ायरफ़ॉक्स

<?php 
$ldaphost = "ldap.domain.com"; 
$ldapport = 389; 

$ds = ldap_connect($ldaphost, $ldapport) 
or die("Could not connect to $ldaphost"); 

if ($ds) 
{ 
    $username = "[email protected]"; 
    $upasswd = "pass"; 

    $ldapbind = ldap_bind($ds, $username, $upasswd); 

    if ($ldapbind) 
     {print "Congratulations! $username is authenticated.";} 
    else 
     {print "Access Denied!";} 
} 
?> 

मेरे उन Firefox और IE का उपयोग, और मुझे पता है कि उनके ActiveDirectory साख पारित कर सकते हैं का उपयोग करते समय मूल।

मैं सिर्फ यह देखने के लिए एडी समूह देखना चाहता हूं कि वह उपयोगकर्ता नाम वहां पाया गया है, यदि ऐसा है, तो पृष्ठ प्रदर्शित करें, अन्यथा प्रमाण-पत्र में प्रवेश करने के लिए संकेत दें।

चूंकि हमारे उपयोगकर्ता पहले से ही डोमेन नियंत्रक में लॉग इन हैं, इसलिए मैं अपना उपयोगकर्ता नाम लेना चाहता हूं, यह देखने के लिए जांचें कि यह विशिष्ट समूह में पाया गया था, फिर उन्हें इन्हें क्रेडेंशियल इनपुट करने के लिए अन्यथा संकेत दें। यह कैसे संभव है?

+0

क्या वहां कहीं कोई प्रश्न है? –

+0

जोड़ा गया प्रश्न। – Brad

+0

उत्कृष्ट। धन्यवाद। =) –

उत्तर

7

आपको वास्तव में अपने पीपी कोड से सक्रिय निर्देशिका सर्वर से संवाद करने की आवश्यकता नहीं है ताकि आप यह सुनिश्चित कर सकें कि आप आईआईएस को अपने वेब सर्वर के रूप में उपयोग करते हैं।

यहां कुंजी शब्द Integrated Windows Authentication है - यह शब्द djn looked for है। यदि यह विकल्प चालू है (और अनाम पहुंच अस्वीकार कर दी गई है) आईआईएस सक्रिय निर्देशिका और अनुरोधित संसाधनों के एनटीएफएस फाइल सिस्टम विशेषाधिकारों के खिलाफ आपूर्ति किए गए प्रमाण-पत्रों की जांच करेगा। इसलिए आप सरल एनटीएफएस एक्सेस कंट्रोल मैकेनिज्म का उपयोग करके अपनी फाइलों तक पहुंच नियंत्रित कर सकते हैं।

अपने उपयोगकर्ताओं IE का उपयोग करते हैं वे भी रूप में इस तथाकथित SPNEGO (सरल और संरक्षित जीएसएसएपीआई बातचीत तंत्र) के माध्यम से स्वचालित रूप से किया जाता है कि वे अपने क्रेडेंशियल में टाइप करने की जरूरत नहीं है और उसके अंतर्निहित तंत्र Kerberos या NTLMSSP क्या आपके ग्राहक पर निर्भर करता है और सर्वर प्रसंस्करण करने में सक्षम है।

जहां तक ​​मुझे पता है कि फ़ायरफ़ॉक्स आपके सर्वर पर स्वचालित रूप से विंडोज लॉगऑन क्रेडेंशियल्स को सौंपने में सक्षम है। आपको उस सुविधा को चालू करने के लिए configuration option को समायोजित करना होगा - यह नहीं पता कि यह जानकारी अभी भी फ़ायरफ़ॉक्स 3.5.x के साथ मान्य है या नहीं।

यदि आप एक * निक्स-सिस्टम पर अपाचे चला रहे हैं तो आपको एकीकृत विंडोज प्रमाणीकरण-सिस्टम के साथ संभालने के लिए कुछ सर्वर-साइड-मॉड्यूल का सहारा लेना होगा।संभावित विकल्पों (पता नहीं है कि क्या वे वास्तव में अभी भी बनाए रखा या स्थिर कर रहे हैं) कर रहे हैं:

अपाचे के लिए विंडोज पर देखते हैं:

  • mod_ntlm (पुराना;जैसा नहीं 10 से ऊपर)
  • mod_auth_sspi (mod_ntlm के उत्तराधिकारी)

कृपया ध्यान रखें कि इनमें से अधिकांश मॉड्यूल बहुत पुराना होने लगते हो।

1

अभी भी इसी तरह के सेटअप पर काम करना: मैंने उन सभी एलडीएपी सामानों को छोड़ दिया है जिनमें वेब सर्वर क्लाइंट को एडी के साथ प्रमाणीकृत करने से पहले (माफ करना, मुझे याद नहीं है कि यह एम $ वैकल्पिक ब्रह्मांड में क्या कहा जाता है) ।

यदि ग्राहक एडी में PHP स्क्रिप्ट तक पहुंचता है और मेरे पास उसका उपयोगकर्ता नाम $_SERVER["AUTH_USER"] और $_SERVER["LOGON_USER"] में है, अन्यथा वह कभी भी स्क्रिप्ट पर नहीं जाता है।