Saya ingin menulis kueri LDAP yang menguji apakah pengguna (sAMAccountName) adalah anggota grup tertentu. Apakah mungkin untuk melakukan itu sehingga saya mendapatkan catatan hasil 0 atau 1?
Saya kira saya bisa mendapatkan semua grup untuk pengguna dan menguji masing-masing untuk kecocokan, tetapi saya bertanya-tanya apakah saya bisa mengemasnya menjadi satu ekspresi LDAP.
Ada ide?
Terima kasih
Jawaban:
Anda harus dapat membuat kueri dengan filter ini di sini:
dan ketika Anda menjalankannya terhadap server LDAP Anda, jika Anda mendapatkan hasilnya, pengguna Anda "yourUserName" Anda memang anggota grup "CN = YourGroup, OU = Pengguna, DC = YourDomain, DC = com
Coba dan lihat apakah ini berhasil!
Jika Anda menggunakan C # / VB.Net dan System.DirectoryServices, cuplikan ini harus melakukan trik:
Peringatan: ini hanya akan menguji keanggotaan grup langsung, dan itu tidak akan menguji keanggotaan dalam apa yang disebut "grup utama" (biasanya "cn = Pengguna") di domain Anda. Itu tidak menangani keanggotaan bersarang, misalnya Pengguna A adalah anggota Grup A yang merupakan anggota Grup B - fakta bahwa Pengguna A benar-benar anggota Grup B juga tidak tercermin di sini.
Marc
sumber
Jika Anda menggunakan OpenLDAP (yaitu slapd) yang umum di server Linux, maka Anda harus mengaktifkan overlay anggota untuk dapat mencocokkan dengan filter menggunakan atribut (memberOf = XXX).
Selain itu, setelah Anda mengaktifkan overlay, itu tidak memperbarui atribut memberOf untuk grup yang ada (Anda harus menghapus grup yang ada dan menambahkannya kembali). Jika Anda mengaktifkan overlay untuk memulainya, ketika database kosong maka Anda harus OK.
sumber
Saya akan menambahkan satu hal lagi untuk jawaban Marc: Atribut memberOf tidak dapat berisi wildcard, jadi Anda tidak bisa mengatakan sesuatu seperti "memberof = CN = SPS *", dan berharap untuk menemukan semua grup yang dimulai dengan "SPS".
sumber
Anda harus menetapkan basis permintaan Anda ke DN pengguna yang bersangkutan, lalu mengatur filter Anda ke DN grup yang Anda tanyakan apakah mereka anggota. Untuk melihat apakah jdoe adalah anggota grup kantor, maka kueri Anda akan terlihat seperti ini:
Jika Anda ingin melihat SEMUA grup yang menjadi anggotanya, minta saja atribut 'anggota' dalam pencarian Anda, seperti ini:
sumber