Re: [Lug-bg] ldap question
- Subject: Re: [Lug-bg] ldap question
- From: Danail Petrov <danail.petrov@xxxxxxxxxxx>
- Date: Sun, 22 Apr 2007 19:32:38 +0300
Danail Petrov wrote:
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 да помогне някому някой ден :)
Поздрави,
Данаил Петров
------------------------------------------------------------------------
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
Забравих само да добавя, че все още не съм намерил подходящ windows
email клиент, който да подържа тези неща който съм направил :-) Повечето
майл клиенти искат само hostname на ldap съвръра, а не позволяват
дефинирането на потребителско име и парола. Още повече, че дори когато
достъпа до всички директори е позволен за писане, mail клиентите немогат
да създават контакти в директорията. Така че пак съм в задънена улица
:) Ако някой ползва email клиент, който да дава възможност за дефиниране
на потребителско име и парола за достъп до ldap съвъра, нека сподели.
Поздрви,
Данаил Петров
--
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
|