Saat ini saya sedang berupaya mengintegrasikan otentikasi LDAP ke dalam sistem dan saya ingin membatasi akses berdasarkan pada kelompok LDAP. Satu-satunya cara untuk melakukan ini adalah melalui filter pencarian dan oleh karena itu saya percaya satu-satunya pilihan saya adalah penggunaan atribut "memberOf" di filter pencarian saya. Ini adalah pemahaman saya bahwa atribut "memberOf" adalah atribut operasional yang dapat dibuat oleh server untuk saya kapan saja atribut "anggota" baru dibuat untuk setiap entri "groupOfNames" di server. Tujuan utama saya adalah untuk dapat menambahkan atribut "anggota" ke entri "groupOfNames" yang ada dan menambahkan atribut "anggotaOf" yang cocok ditambahkan ke DN yang saya berikan.
Apa yang telah saya capai sejauh ini:
Saya masih cukup baru dalam administrasi LDAP tetapi berdasarkan apa yang saya temukan di panduan admin openldap, sepertinya Reverse Group Membership Maintence alias "overlay anggota" akan mencapai efek yang saya cari.
Server saya sedang menjalankan instalasi paket (slapd di ubuntu) dari openldap 2.4.15 yang menggunakan konfigurasi runtime gaya "cn = config". Sebagian besar contoh yang saya temukan masih merujuk pada metode konfigurasi statis "slapd.conf" yang lebih lama dan saya telah mencoba yang terbaik untuk menyesuaikan konfigurasi dengan model berbasis direktori baru.
Saya telah menambahkan entri berikut untuk mengaktifkan modul overlay anggota:
Aktifkan modul dengan olcModuleLoad
cn=config/cn\=module\{0\}.ldif
dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
structuralObjectClass: olcModuleList
entryUUID: a410ce98-3fdf-102e-82cf-59ccb6b4d60d
creatorsName: cn=config
createTimestamp: 20090927183056Z
entryCSN: 20091009174548.503911Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009174548Z
Mengaktifkan hamparan untuk basis data dan mengizinkannya untuk menggunakan pengaturan defaultnya (groupOfNames, anggota, memberOf, dll)
cn=config/olcDatabase={1}hdb/olcOverlay\=\{0\}memberof
dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
entryUUID: 6d599084-490c-102e-80f6-f1a5d50be388
creatorsName: cn=admin,cn=config
createTimestamp: 20091009104412Z
olcMemberOfRefInt: TRUE
entryCSN: 20091009173500.139380Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009173500Z
Hasil saya saat ini:
Dengan menggunakan konfigurasi di atas, saya dapat menambahkan "groupOfNames" BARU dengan sejumlah entri "anggota" dan memiliki semua DN yang terlibat diperbarui dengan atribut "memberOf". Ini adalah bagian dari perilaku yang saya harapkan. Meskipun saya percaya bahwa hal-hal berikut ini harus diselesaikan dengan overlay anggota, saya masih tidak tahu bagaimana melakukan hal berikut dan saya akan dengan senang hati menerima saran apa pun:
- Tambahkan atribut "anggota" ke "groupOfNames" yang ada dan buat atribut "memberOf" yang sesuai dibuat secara otomatis.
- Hapus atribut "anggota" dan minta atribut "memberOf" yang sesuai dihapus secara otomatis.
slapadd
(ke basis data yang dihentikan) cara yang tepat untuk melakukannya?Saya menulis tentang ini baru-baru ini di blog saya, www.jordaneunson.com Saya menyalin dan menempel bagian yang relevan di.
Yang harus saya lakukan adalah menghentikan layanan "slapd" di server LDAP saya dan mengedit file slapd.conf saya dan menambahkan dua baris berikut.
Saya sudah memiliki groupOfNames bernama vpn jadi saya kemudian harus membuat file LDIF dengan konten berikut:
Dan menambahkan ini ke database ldap saya
Setelah ini, saya menyalakan server ldap di debug untuk memeriksa kesalahan
dan memeriksa untuk memastikan bahwa keanggotaan grup saya "vpn" terdaftar di entri pengguna saya.
dan bam! keberhasilan!
Jadi saya menyalakan kembali layanan slapd dan mendapatkan banyak kesuksesan sejak itu. Untuk alat manajemen GUI baru, saya menggunakan phpLDAPAdmin dan tidak memiliki masalah dengan atribut memberOf yang ditugaskan dan tidak ditugaskan kepada pengguna saya.
Satu hal terakhir yang perlu diperhatikan adalah bahwa atribut "memberOf" bukan bagian dari skema dasar LDAP v3 dan dengan demikian melakukan ldapsearch tidak akan mengungkapkan atribut ini kecuali jika secara spesifik ditanyai. Itulah sebabnya dalam contoh saya di atas dinyatakan pada akhir parameter ldapsearch.
Semoga ini membantu.
Sunting: Saya baru saja menguji masalah Anda dengan Apache Directory Studio: selama saya memasukkan nilai anggota atribut secara keseluruhan seperti yang disebutkan di atas, ia berfungsi dengan baik. Namun atribut memberOf tidak muncul di entri pengguna. Ini karena atribut memberOf bukan bagian dari skema LDAPv3. Untuk memverifikasi bahwa itu ada, gunakan alat baris perintah ldapsearch:
sumber