Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

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


 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.