Obecnie pracuję nad zintegrowaniem uwierzytelniania LDAP z systemem i chciałbym ograniczyć dostęp w oparciu o grupę LDAP. Jedynym sposobem, aby to zrobić, jest filtr wyszukiwania, dlatego uważam, że moją jedyną opcją jest użycie atrybutu „memberOf” w moim filtrze wyszukiwania. Rozumiem, że atrybut „memberOf” jest atrybutem operacyjnym, który może być dla mnie utworzony przez serwer za każdym razem, gdy dla każdego wpisu „groupOfNames” na serwerze tworzony jest nowy atrybut „memberOf”. Moim głównym celem jest możliwość dodania atrybutu „member” do istniejącego wpisu „groupOfNames” i dodanie pasującego atrybutu „memberOf” do podanej nazwy wyróżniającej.
Co udało mi się dotychczas osiągnąć:
Nadal jestem całkiem nowy w administrowaniu LDAP, ale na podstawie tego, co znalazłem w przewodniku administratora openldap, wygląda na to, że odwrócenie członkostwa w grupie, czyli „element członkowski nakładki”, osiągnę dokładnie taki efekt, którego szukam.
Mój serwer obecnie uruchamia instalację pakietu (slapd na Ubuntu) programu openldap 2.4.15, który używa konfiguracji środowiska wykonawczego „cn = config”. Większość przykładów, które znalazłem, wciąż odwołuje się do starszej metody konfiguracji statycznej „slapd.conf” i starałem się jak najlepiej dostosować konfiguracje do nowego modelu opartego na katalogu.
Dodałem następujące wpisy, aby włączyć moduł nakładki memberof:
Włącz moduł za pomocą 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
Włączono nakładkę dla bazy danych i zezwolono na korzystanie z jej ustawień domyślnych (groupOfNames, member, memberOf itp.)
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
Mój obecny wynik:
Korzystając z powyższej konfiguracji, jestem w stanie dodać NOWĄ „groupOfNames” z dowolną liczbą pozycji „member” i zaktualizować wszystkie zaangażowane nazwy wyróżniające za pomocą atrybutu „memberOf”. To jest część zachowania, którego bym się spodziewał. Chociaż uważam, że przy użyciu nakładki członka należy wykonać następujące czynności, nadal nie wiem, jak wykonać następujące czynności i chętnie przyjmę wszelkie porady:
- Dodaj atrybut „member” do ISTNIEJĄCEGO „groupOfNames”, a odpowiedni atrybut „memberOf” zostanie utworzony automatycznie.
- Usuń atrybut „member” i automatycznie usuń odpowiedni atrybut „memberOf”.
slapadd
(na zatrzymaną bazę danych) nie jest właściwym sposobem na to?