का उपयोग कर एक सक्रिय निर्देशिका सुरक्षा समूह को उपयोगकर्ता जानकारी पुनर्प्राप्त करने के लिए कैसे करें जैसा कि आप नीचे देख सकते हैं मुझे सुरक्षा समूह में एलडीएपी खोज करते समय मुझे कोई उपयोगकर्ता जानकारी नहीं मिल रही है। मैं यह जांचने के लिए $_SERVER[remote_user]
का उपयोग करना चाहता हूं कि उपयोगकर्ता इस समूह का सदस्य है या नहीं। मैं इस उपयोगकर्ता की जानकारी को पुनः प्राप्त करना चाहता हूं और इसके साथ SQL डेटाबेस अपडेट करना चाहता हूं। क्या यह संभव है?एलडीएपी और PHP
$dn = "CN=Intra,OU=Common Security Groups,DC=mydomain,DC=local";
$filter = "(member=*)";
$ad = ldap_connect("IP") or die("Couldn't connect to AD!");
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
$bd = ldap_bind($ad, "[email protected]", "password") or die("Can't bind to server.");
$sr = ldap_search($ad,$dn,$filter);
$entries = ldap_get_entries($ad, $sr);
print_r($entries);
रिटर्न इस:
Array
(
[count] => 1
[0] => Array
(
[objectclass] => Array
(
[count] => 2
[0] => top
[1] => group
)
[0] => objectclass
[cn] => Array
(
[count] => 1
[0] => Intra
)
[1] => cn
[description] => Array
(
[count] => 1
[0] => Group for (LDAP) INTRANET server access
)
[2] => description
[member] => Array
(
[count] => 4
[0] => CN=Fname1 Lname1,OU=Mail enabled users,OU=Aberdeen,DC=mydomain,DC=local
[1] => CN=Fname2 Lname2,OU=Mail enabled users,OU=Forres,DC=mydomain,DC=local
[2] => CN=Fname3 Lname3,OU=Houston,DC=mydomain,DC=local
[3] => CN=Fname4 Lname4,OU=Mail enabled users,OU=Bergen,DC=mydomain,DC=local
)
[3] => member
[distinguishedname] => Array
(
[count] => 1
[0] => CN=Intra,OU=Common Security Groups,DC=mydomain,DC=local
)
[4] => distinguishedname
[instancetype] => Array
(
[count] => 1
[0] => 4
)
[5] => instancetype
[whencreated] => Array
(
[count] => 1
[0] => 20100711172407.0Z
)
[6] => whencreated
[whenchanged] => Array
(
[count] => 1
[0] => 20100712063949.0Z
)
[7] => whenchanged
[usncreated] => Array
(
[count] => 1
[0] => 17491499
)
[8] => usncreated
[usnchanged] => Array
(
[count] => 1
[0] => 17498823
)
[9] => usnchanged
[name] => Array
(
[count] => 1
[0] => Intra
)
[10] => name
[objectguid] => Array
(
[count] => 1
[0] =>
)
[11] => objectguid
[objectsid] => Array
(
[count] => 1
[0] =>
)
[12] => objectsid
[samaccountname] => Array
(
[count] => 1
[0] => Intra
)
[13] => samaccountname
[samaccounttype] => Array
(
[count] => 1
[0] => 268435456
)
[14] => samaccounttype
[grouptype] => Array
(
[count] => 1
[0] => -2147483646
)
[15] => grouptype
[objectcategory] => Array
(
[count] => 1
[0] => CN=Group,CN=Schema,CN=Configuration,DC=mydomain,DC=local
)
[16] => objectcategory
[count] => 17
[dn] => CN=Intra,OU=Common Security Groups,DC=mydomain,DC=local
)
)
सब कुछ ठीक काम किया जब मैं सामान्य डीएन प्रयोग किया है:
$dn = "OU=Mail enabled users,OU=Bergen,DC=mydomain,DC=local";
लेकिन एक ई विशेषज्ञ ने मुझे बताया यह एक बड़ा नहीं था -नो और मुझे इसके बजाय सुरक्षा समूह का उपयोग करना चाहिए: \
त्वरित प्रतिक्रिया के लिए धन्यवाद! लेकिन जब मैं आपके फ़िल्टर का उपयोग करने की कोशिश करता हूं तो मुझे यह त्रुटि मिलती है: PHP चेतावनी: ldap_search() [function.ldap-search]: खोज: सी में ऑपरेशंस त्रुटि: \ inetpub \ wwwroot \ test \ test.php लाइन 33 पर PHP चेतावनी: ldap_get_entries(): आपूर्ति किया गया तर्क लाइन 35 – horgen
पर C: \ inetpub \ wwwroot \ test \ test.php में वैध ldap परिणाम संसाधन नहीं है क्योंकि मुझे लगता है कि आप Windows पर हैं, यहां एक युक्ति है। Softerra LDAP ब्राउज़र 2.6 डाउनलोड करें (यह मुफ़्त है), इसे अपने एडी से कनेक्ट करें और टूल के साथ अपनी खोजों का परीक्षण करें। - सिद्धांत रूप में, डीसी = mydomain, डीसी = स्थानीय "के आधार डीएन, हालांकि काम करना चाहिए। – Tomalak
धन्यवाद। अब मुझे नहीं पता कि क्या चल रहा है। मैंने डीएन की खोज की: "डीसी = मायडोमेन, डीसी = स्थानीय" फ़िल्टर: "(& (objectCategory = उपयोगकर्ता) (सदस्य ओएफ = सीएन = इंट्रा, ओयू = सामान्य सुरक्षा समूह, डीसी = mydomain, डीसी = स्थानीय))" में बिना किसी समस्या के एलडीएपी ब्राउज़र। लेकिन जब मैं PHP में एक ही चीज़ करने की कोशिश करता हूं तो मुझे यह त्रुटि मिलती है: "PHP चेतावनी: ldap_search() [function.ldap-search]: खोज: सी में ऑपरेशंस त्रुटि: \ inetpub \ wwwroot \ test \ test.php लाइन पर 17 ":(अगर मैं" ओयू = बर्गन, डीसी = मायडोमेन, डीसी = स्थानीय "का उपयोग करता हूं तो मुझे कोई त्रुटि नहीं मिलती है। लेकिन फिर मुझे प्रत्येक ओयू के लिए लूप बनाना होगा। – horgen