[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: dovecot virtual users / postfix



Hoi!

Er staat twee keer een regel met result_format erin?
Goed gezien...! De laatste was de bedoeling, en die wordt ook gebruikt door postfix. Maar thanks!

Nee, dat is er niet. Probeer je niet teveel dingen tegelijk in 1 ldap
object te stoppen, waarbij er spaghettigevaar ontstaat? Het lijkt erop
dat je gebruikers-object ook tegelijk een groepsobject is? Kun je een
voorbeeld geven van hoe de objecten in je database er uitzien?

Eerder zei je dat je een posixGroup had met memberUid erin, en nu een
groupOfNames met zowel members (DNs?) als mail, uid, en rfc822MailMember
erin?

Hans



Ja, moet misschien uitleggen dat ik van het hergebruiken van de al bestaande posixGroups ben afgestapt, en nu groupOfNames gebruik, die ik specifiek voor de mail inricht.

Een voorbeeld van een groupOfNames:
   dn: cn=student-L,ou=mail,dc=example,dc=com
   cn: student-L
   description: student-L distribution list
   objectclass: groupOfNames
   objectclass: extensibleObject
   mail: student-L@example.com
1) member: cn=student-2012-L,ou=mail,dc=example,dc=com
2) member: uid=a_sample,ou=users,dc=example,dc=com
3) member: cn=Al_Ias,ou=aliases,dc=example,dc=com

In deze voorbeeld groep zitten dus:
1) sub-groupOfNames
2) reguliere gebruikers
3) aliases

M'n postfix ldap config bestandjes:
root@sogo:/etc/postfix# cat ldap-mailboxes.cf
server_host = filehost.example.com
search_base = ou=mail,dc=example,dc=com
bind = no
query_filter = (mail=%s)
result_attribute = uid
result_format = %s@test.example.com

root@sogo:/etc/postfix# cat ldap-aliases.cf
server_host = filehost.example.com
search_base = ou=aliases,dc=example,dc=com
bind = no
query_filter = (&(objectClass=nisMailAlias)(cn=%u))
result_attribute = rfc822MailMember
result_format = %s

root@sogo:/etc/postfix# cat ldap-groups.cf
server_host = filehost.example.com
search_base = ou=mail,dc=example,dc=com
bind = no
query_filter = (&(objectClass=groupOfNames)(mail=%s))
result_attribute = uid, rfc822MailMember
special_result_attribute = member
leaf_result_attribute = uid
result_format = %s@test.example.com

Dit werkt allemaal eigenlijk hartstikke goed voor mailboxen, aliases, groepen, nested groepen, alles. :-)

De reden voor die result_format = %s@test.example.com truc:
Als een gebruiker meerdere mail velden in ldap heeft, wordt alle mail afgeleverd in dezelfde mailbox van die gebruiker. Zo kun je gemakkelijk een paar secundaire mailadressen toevoegen, en wordt toch alles vertaald in uid@example.com. Dit lijkt ook goed te werken.

Maar nu het probleem/de vraag:

Ik wil nu ook graag aliases aan een groep kunnen toevoegen. Echter van een alias hebben we alleen een cn en een rfc822MailMember. Geen 'normale uid' dus, en daardoor werkt die 'vertaling' met "result_format = %s@test.example.com" niet:

Resultaat van een test postmap query op ldap-groups.cf wordt dan bv:

user1@example.com,user2@example.com,alias1@gmail.com@example.com
En dat laatste resultaat klopt dus niet.

En dat zou opgelost met met een soort 'conditional' result_format..:
- @example.com toevoegen, behalve wanneer het resultaat (bv) al een @ bevat.

Of zou ik dit anders op een andere manier kunnen oplossen? Hoop dat ik het probleem zo duidelijker gemaakt heb. En wanneer ik heel dom aan de gang ben, hoor ik het uiteraard ook graag van jullie...

Zoals je ziet ben ik een heel eind verwijderd van je voorbeelden, maar die hebben me HEEL erg geholpen om hier te komen.

Groetjes,
Mourik Jan


Reply to: