PHP AD LDAP grubunun tüm üyeleri için özelliklerini seçmek için en iyi yolu nedir?

2 Cevap php

Ben bir PHP uygulaması belirli bir gruptaki tüm kullanıcılar için özellikleri bir dizi seçmek gerekir. Ben her üyesinin dn almak ve daha sonra her bir üyesinin özellikleri için ayrı bir LDAP sorgusu yapmak için grubun 'üye' niteliğini sorgulamak olabilir fark. Ben o PHP uygulaması ve LDAP sunucusu (AD) arasındaki fazla geri ve ileri-önlemek için, ancak bir kez de tüm sonuçları dönmek gerçekleştirebileceğiniz tek bir sorgu olduğunu, ancak umut ediyorum.

Bir kullanarak LDAP browser başarıyla benim tam etki alanı üzerinde bir arama çalıştırabilirsiniz:

Search DN:  DC=middlebury,DC=edu
Filter: (memberOf=CN=BG_Cells,OU=General,OU=Groups,DC=middlebury,DC=edu)
Attributes: objectClass,mail,givenName,sn,sAMAccountName,telephoneNumber

ve beklenen sonuçları geri almak. Ancak PHP'nin ldap_search() yöntemini kullanarak bu filtreyi çalıştığınızda, ben kod ile bir Operations error olsun 1.

Aşağıda I istimal PHP.

....
$baseDN = 'DC=middlebury,DC=edu';
$filter = '(memberOf=CN=BG_Cells,OU=General,OU=Groups,DC=middlebury,DC=edu)';
$attributes = array('objectClass','mail','givenName','sn','sAMAccountName','telephoneNumber');

$result = ldap_search($connection, $baseDN, $filter, $attributes);

if (ldap_errno($connection))
    print "Read failed for $filter with message: ".ldap_error($connection).", #".ldap_errno($ connection));

Diğer filtreler sorun değil bağlantısı veya daha benim filtre ile bu nitelikleri ile sadece iyi çalışmak ve sadece array('mail') veya nitelikleri için boş bir dizi hata sonucu kurtulmak değil kullanarak, bu yüzden eminim set bağlıyor.

İkinci bir seçenek grubunun 'üye' alanına grup üyesi dns için bir sorgu yapmak ve daha sonra her üye dn ile uzun VEYA sorgu oluşturmak olacaktır. Bu hala ancak iki sorgu içerecektir.

Yani her üyenin özelliklerini almak için daha iyi bir yolu ideal bir sorguda, var mı?

2 Cevap

Söylemek zor, ancak genellikle, LDAP sonuç kodu (1) ilişkili isteği devam eden başka bir işlem (örneğin, çok-aşamalı SASL bağlama ortasında olmayan bir bağlama isteği) sırası dışında olduğunu gösterir. Bu istemci hatalı mesaj gönderilmiş olduğunu göstermez.

Are you bound over the connection before performing the query? -jim

Ben filtre veya nitelikleri seçimi, tam olarak sorun nerede emin değilim. Bu atıf seçim buysa. Bu filtre ise, o zaman sorun izole bir yolu olarak artık bir kenara nitelik seçimi koymak öneririz.

İlgili kod ldap_search() Eğer yürütürken size göstermek misiniz?