Használható dokumentáció hiányában küzdök azzal, hogy a ppolicy overlay által frissített pwdFailureTime attribútum értéke a slave-ekről továbbítódjon a master OpenLDAP (2.4.23) szerverre.
Az updateref révén a jelszóváltozások szépen továbbítódnak, de ha sikertelenül azonosítja magát egy user, akkor az nem.
database bdb
...
updateref ldaps://masterldap...
overlay chain # nincsenek referralok, így elvileg nincs mit követni, vagy nem értem a koncepciót
chain-rebind-as-user FALSE
chain-return-error TRUE
overlay ppolicy
ppolicy_forward_updates
Ha valaki már csinált ilyet és van működő konifgja, akkor megköszönném ha megírná ide, vagy van róla használható leírása. RTFM slapo-ppolicy, slapo-chain, slapd-ldap megvolt. Loglevel állításával sem találtam használható üzeneteket.
- 6620 megtekintés
Hozzászólások
sub
- A hozzászóláshoz be kell jelentkezni
Kiolvastam a köldököm a sok manual olvasásban (slapo-chain, slapd-ldap, slapd.conf, slapo-ppolicy, slapd.access), a openldap-technical mailing listben való kereséssel (kulcsszó: ppolicy_forward_updates), az OpenLDAP Admin Guide bujásával, mire végül meglett az utólag már többé-kevésbé triviálisnak tűnő megoldás.
A megoldáshoz a master szerveren az "acl" loglevel beállítása vezetett el, és az hogy a végén már az admin DN-t adtam meg chain user DN-ként. Mindvégig azt feltételeztem ugyanis, hogy a "write" jog elegendő a chain usernek, hogy updatelje többek közt a pwdFailureTime attribútum értéket a masteren, de nem volt az. "manage" jog kellett az alábbi módon (nem vagyok híve az olc-s konfignak):
access to attrs=pwdHistory,pwdFailureTime,pwdChangedTime,pwdReset,pwdAccountLockedTime
by dn.exact="uid=repl,dc=example,dc=com" manage
by users read
by * none
Illetve volt még egy buktató. Az slapd-ldap manualban leírt ldap backend - amelyet a chain overlay használ, amelyet a ppolicy overlay használ - csak a globális konfigurációból olvas, így a slave-en a a chain overlayt ott kellett definiálni, az adatbázis definíciók előtt. Tehát a slave-en a slapd.conf így néz ki:
[...]
overlay chain
chain-uri ldaps://master
chain-idassert-bind bindmethod="simple"
binddn="uid=repl,dc=example,dc=com"
credentials="secret"
mode="self"
chain-return-error TRUE
database ...
suffix ...
directory ...
[...]
syncrepl ...
updateref ldaps://master
overlay ppolicy
ppolicy_forward_updates
- A hozzászóláshoz be kell jelentkezni
hmmm... az indentálások nem látszanak, de hozzá lehet gondolni.
- A hozzászóláshoz be kell jelentkezni
Köszönöm
- A hozzászóláshoz be kell jelentkezni
Egy apró szépséghibája lett a dolognak. A chain modul miatt az updateref nem referralt ad vissza, hanem a chain modul elkezdni a követni a referralt, de nem a megfelelő userrel. :-(
Pl. passwd parancs nem tudja most megváltoztatni a usert, mert a chainnek megadott replikáló userrel próbálkozik és nem az ldap.conf-ban megadott rootbinddn-el.
- A hozzászóláshoz be kell jelentkezni