Soru Ldapsearch kullanarak grup üyeleri listeleniyor


Kurumsal LDAP dizinimiz bir Snow Leopard Server Açık Dizin kurulumu üzerinde barındırılmaktadır. Kullanıyorum ldapsearch içine almak için bir .ldif dosyasını dışa aktarma aracı bir diğeri harici olarak kimlik doğrulaması yapmak için harici LDAP sunucusu; Temel olarak aynı kimlik bilgilerini dahili ve harici olarak kullanabilme.

sahibim ldapsearch “Kullanıcılar” OU'daki her şeyin içeriğini ve niteliklerini çalışmak ve bana vermek ve hatta sadece ihtiyacım olan özelliklere kadar filtrelemek:

ldapsearch -xLLL -H ldap://server.domain.net / 
 -b "cn=users,dc=server,dc=domain,dc=net" objectClass / 
 uid uidNumber cn userPassword > directorycontents.ldif

Bu, bana uzak OpenLDAP sunucuma alabileceğim kullanıcı ve özelliklerin listesini verir.

dn: uid=username1,cn=users,dc=server,dc=domain,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: organizationalPerson
uidNumber: 1000
uid: username1
userPassword:: (hashedpassword)
cn: username1

Ancak, aynı sorguyu bir "kapsayıcı" yerine bir OD "grubu" üzerinde denediğimde, sonuçlar şu şekildedir:

dn: cn=groupname,cn=groups,dc=server,dc=domain,dc=net
objectClass: posixGroup
objectClass: apple-group
objectClass: extensibleObject
objectClass: top
gidNumber: 1032
cn: groupname
memberUid: username1
memberUid: username2
memberUid: username3

Gerçekten istediğim, grup üyelikleri temelinde filtrelenen en üstteki listeden kullanıcıların listesidir, ancak üyelik, kullanıcı hesabı yerine Grup tarafında ayarlanmış gibi görünür. Bunu filtrelemenin ve ihtiyacım olan şeyi vermenin bir yolu olmalı, değil mi?


7
2018-04-13 17:15


Menşei




Cevaplar:


LDAP ile çalışıyorum, ancak belirli bir sunucu markası değil.

Denediğim ilk şey, kullanıcılarınızın örneklerini kısıtlamak yerine tüm özelliklerini çekerek arama yapmasıdır.

ldapsearch -xLLL -H ldap://server.domain.net \
    -b "cn=users,dc=server,dc=domain,dc=net" uid=username1 \* +

Çoğunlukla, kullanıcının grup içindeki grup adını veya grup DN'sini listeleyen, gruptaki bilgilerle senkronize edilmiş bir "memberOf" özniteliği vardır. Eğer varsa, istediğini yapmanın en kolay yolu budur.

* tüm kullanıcı özelliklerini (varsayılan davranış) ve + tüm operasyonel nitelikleri (özel nitelikler) kapacaktır.


3
2018-04-13 17:26



Bu eski bir iş parçacığıdır, ancak OpenLDAP'ta (Açık Dizin temelini) belirtilmelidir. memberOf operasyonel bir özelliktir ve açıkça talep edilmesi gerekir. Sadece ldapsearch Burada önerildiği gibi geri dönmeyecek memberOfVarsa bile. Ayrıca belirtilmelidir ki memberOf OS X ve Açık Dizin'de bunun nasıl işlendiğini bilmeme rağmen, yer paylaşımı genellikle varsayılan olarak etkinleştirilmez. - daff
@daff + + tüm operasyonel nitelikleri almalıyım inanıyorum ... - freiheit
Ah, gerçekten. Güncellendi ldapsearch ilan edildiği gibi çalışır. - daff


Farklı konteynırlarda kullanıcı nesneleri bulundurarak grupları temsil etmeyi mi düşünüyorsunuz? Sevmek:

dn: uid=username1,cn=users,cn=accounting,dc=server,dc=domain,dc=net
...
dn: uid=username2,cn=users,cn=engineering,dc=server,dc=domain,dc=net
...

Eğer öyleyse, LDIF'e masaj yapmak için bir senaryo yazmanız gerekeceğini umuyorum. Mükemmel deneyin Python-LDAP modüller.

Bunu neden yapmak istediğini sorguluyorum. Birden çok gruba ait olan kullanıcılara sahip olma konusunda anlaşmazlık getirir ve Açık Yönetmen sözleşmelerine aykırıdır. Tüm kullanıcı ve grup nesnelerini OpenLDAP sunucunuza kopyalayamaz ve kullanıcı nesnesinin hangi kapsayıcıda var olduğunu değil, grup üyeliğini temel alarak sorgulayamaz mısınız?


0
2018-04-13 17:28