Re: [Lug-bg] ldap question
- Subject: Re: [Lug-bg] ldap question
- From: Danail Petrov <danail.petrov@xxxxxxxxxxx>
- Date: Sun, 22 Apr 2007 19:22:52 +0300
Doncho N. Gunchev wrote:
On Saturday 2007-04-21 20:09:27 Danail Petrov wrote:
Здравейте група,
имам следното питане. Може ли да се направи следното нещо с LDAP:
- Да се организира Address Book, в който всички потребители които
използват Directory-то , да си имат собствено местенце, където да си
синхронизират контактите? Ето как ги виждам аз нещата:
примерно имаме:
dn: dc=domani,dc=com
...
dn: ou=addressbook,dc=domain,dc=com
...
dn: cn=user1,ou=addressbook,dc=domain,dc=com
...
dn: cn=user2,ou=addressbook,dc=domain,dc=com
...
По тази логика, user1 да има свой собствен:
dn: sn=fist@xxxxxxxxxxxxxxxxx,cn=user1,ou=addressbook,dc=domain,dc=com
...
Мислех да правя нещо подобно и мисля че при IBM срешнах идеята да имаш нещо
от сорта на addressbook, user, domain, tld за лични и addressbook, domain,
tld за споделена адресна книга (те така го и бяха направили в domino-то ако
не бъркам). До споделената имат достъп само определени хора (човек). Трябва
само да си оформиш правилно правилата за достъп. На пощенските клиенти им се
задават по две адресни книги - една за четене/запис и още една само за четене
(Kmail го прави без проблем, но мисля че и Mozilla и OutLook имаха
поддръжка). Схема за адресната книга, която да работи и с Mozilla и с
OutLook, имаше нейде из bug-report-ите на mozilla.
Ако го направиш - похвали се, още не съм се отказал да го правя, просто имам
по-важни задачки от този експеримент.
I did it :-)
Ето малко информация за това как точно съм го реализирал:
+ dc=domain,dc=com
.+ ou=users,dc=domain,dc=com
..+ ou=user1,ou=users,dc=domain,dc=com
...+ cn=addressbook,ou=user1,ou=users,dc=domain,dc=com
....+ mail=personal@xxxxxxxxxxx
....+ mail=other.personal@xxxxxxxxxxx
..+ ou=user2,ou=users,dc=domain,dc=com
...+ cn=addressbook,ou=user2,ou=users,dc=domain,dc=com
....+ mail=personal.to.user2@xxxxxxxxxxx
....+ mail=other.personal.to.user2@xxxxxxxxxxx
.+cn=sharedbook
..+ mail=some@xxxxxxxxxxx
..+ mail=other@xxxxxxxxxxx
Надявам се да разберете псевдо таблицата която се опитах да създам, а
ето каква е и логиката:
В корена на дървото е domain.com, след което създаваме друга директория
users,където попадат потребителските акаунти, едно ниво по-навътре имаме
и съответнo потребителски имена, който си имат свойте атрибути в
зависимост от необходимата схема. В йерархията на дървото, всеки
потребител разполага със собствена адресна книга, в която може да добавя
свойте контакти. Освен личната си адресна книга, всеки потребител
разполага с достъп до общата такава (cn=sharedbook,dc=domain,dc=com).
Сега малко по-интересната част, и как съм реализирал достъпа до
различните директории:
(При мен политиките вече са доста по-сложни, но тук ще опиша най-простия
промер с който нещата работят)
access to dn.regex="cn=addressbook,cn=(.*),ou=users,dc=domain,dc=com$$"
by dn.regex="^cn=$1,ou=users,dc=domain,dc=com$$" write
by dn="cn=admin,dc=domain,dc=com" write
by * none
Малко разяснение:
access to dn.regex="cn=addressbook,cn=(.*),ou=users,dc=domain,dc=com$$"
/дефинираме ACL, който да бъде приложен при поискване до директорията
addressbook на определен потребител.
Тук интересната врътка е regex възможността , която дава възможност да
се прилагат такъв тип филтри. Или иначе казано, дефинираме cn=(.*), с
помоща на което получаваме потребителското име. Пример:
Потребител user1 се опитва да отвори директорията
cn=addressbook,cn=user1,ou=users,dc=domain,dc=com, поради по-горното
правило, access-listata ще се "активира", и ще позволи достъп за писане
на потребител user1 в неговата addressbook директория. (by
dn.regex="^cn=$1,ou=users,dc=domain,dc=com$$" write). Или иначе казано,
cn=(.*) се взима като регулярен израз $1, което позволява динамичното му
използване по-надолу в листата. Та на базата на ето такива листи могат
да се правят чудеса :-) Освен потребителя, user admin също има достъп до
тази директория. Правилото by * none е ясно :-)
Ами това е в най-общи линии.
Надявам се този feedback да помогне някому някой ден :)
Поздрави,
Данаил Петров
--
Danail Petrov
Senior Network Administrator
Evolink, Sofia
+359(2)9691650
www.evolink.com
icq uin 989677
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|