Uložení ACL pravidel do LDAP

ondra.p

Uložení ACL pravidel do LDAP
« kdy: 12. 01. 2012, 08:17:43 »
Snazime se prevest overeni uzivatelskych prav nekterych sluzeb v linuxu na LDAP s tim, ze by se pozdeji LDAP vyuzil i pro definici dalsich pristupu pro interni systemy firmy. Jde nam tedy o ulozeni ACL pravidel do LDAPu. S LDAPem nemam tolik zkusenosti, navrhli sme nasledujici strukturu:

Kód: [Vybrat]
ou=Groups
    cn=Admin [posixGroup] {memberUid=andrew, memberUid=johny}
       cn=Right {resource:ftp1, action:all}
       cn=Right {resource:ftp2, action:all}
    cn=Editor [posixGroup] {memberUid=joseph}
       cn=Right {resource:ftp1, action:list}
 ou=People
    cn=andrew {uid=andrew}
       cn=Right {resource:ftp3, action:all}
    cn=johny {uid=johny}
    cn=joseph {uid=joseph}

ve slozenych zavorkach {} jsou atributy elementu a v hranatych [] objectClass elementu. Nevim jestli toho v teto strukture docilime, ale potrebovali bychom jednim dotazem vratit objekty cn=Right pro konkretniho uzivatele a dale filtrovat dle atributu elementu cn=Right. Dotaz pro filtrovani pres uzivatele je:
Kód: [Vybrat]
(|(memberUid=andrew)(uid=andrew))
nicmene ten spravne vraci rodicovske elementy cn=Right. Bylo by mozne filtrovat v dotazu podle rodicovskeho elementu? Nebo je tento navrh spatny a struktura se musi sestavit jinak. Diky moc, Ondra
« Poslední změna: 12. 01. 2012, 09:34:42 od Petr Krčmář »


pantaril

Re:uzivatelska a skupinova prava v LDAP (ACL)
« Odpověď #1 kdy: 12. 01. 2012, 09:01:11 »
Doporucuju tam kde to jde pouzivat standardni struktury pro ukladani informaci do ldapu, tzn pro unixove ucty pouzit posixAccount, dale viz treba http://www.ibm.com/developerworks/linux/library/l-openldap/

Vyhodou je, ze s takovouto standardni strukturou se da pohodlne pracovat pomoci PAM autentifikacnich modulu.

Az pokud pro vase potreby zadna standardni struktura neexistuje, muzete si vytvaret vlastni, na te vami navrzene nevidim zadny problem.

Ivan

Re:Uložení ACL pravidel do LDAP
« Odpověď #2 kdy: 12. 01. 2012, 10:15:19 »
Mas dve moznosti.
Bud pouzijes "ldap search scope" a nechas si vratit cely podstrom. A ten se pak "rucne" prohledas na strane klienta.

Anebo muzes pouzit experimentalni feature LDAPu, ktera ktera umozni match (i s wildcardy) na urovni atributu "dn".
dn se da pouzit v dotazech, ale ne kazdy LDAP server to podporuje. Tahle vlastnost muze byt zabijak vykonu.

Jinak bych doporucoval projit si standarty, jestli nehodou uz tvuj pozadavek neimlementoval nekdo jiny.

ondra.p

Re:Uložení ACL pravidel do LDAP
« Odpověď #3 kdy: 12. 01. 2012, 12:38:20 »
Diky za tipy. Prosli sme objekty na http://www.zytrax.com/books/ldap/ape/#objectclasses a zatim posledni reseni je pouziti trid posixUser a posixGroup s tim, ze prava budeme ukladat do primo do elementu ou=Admin pripadne ou=johny do atributu description v urcitem formatu.

;resource;,action1,action2,

Filtrovat pote bude mozne pres jednoduchy dotaz

(&(|(cn=Admin)(cn=johny@nic.cz))(description=";resource;*action1*"))

Zbyva otestovat. Nevyhoda je, ze jednim dotazem nemuzeme ziskat primo nazvy povolenych akci bez dalsiho zpracovani resp. description musime brat jako celek oproti kteremu overujeme, ale to nyni nevadi.

Diky