Outils pour utilisateurs

Outils du site


braveo:docinstallfonctionnement

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

braveo:docinstallfonctionnement [2016/07/19 15:36] (Version actuelle)
Ligne 1: Ligne 1:
 +=====Principe de fonctionnement=====
  
 +heu ben à vrai dire je ne sais pas trop, nous avons suivi une doc et
 +
 +ça marche ...
 +
 +Plus sérieusement,​ nous avons un ldap qui a tous les comptes . 
 +
 +Si on fait un ldapsearch sur le ldap 
 +  ldapsearch "​*"​ -b dc=mdl29,​dc=net -x
 +Il nous ramène tous ce qui a dans le ldap
 +
 +mais comme tout nous intéresse pas repérez l'​adresse mail d'un utilisateur ​
 +
 +par exemple: ​ bjensen@mdl29.net
 +
 +et si on refait une recherche ​
 +  ldapsearch "​mail=bjensen@mdl29.net"​ -b dc=mdl29,​dc=net -x
 +
 +il n'en ressort que sa fiche  ​
 +
 +heu, juste une parenthèse,​ pour rechercher tous ceux qui aurait une adresse mail en mdl29 il suffit d'​executer
 +  ldapsearch "​mail=*@mdl29.net"​ -b dc=mdl29,​dc=net -x
 +
 +bon revenons à la fiche  de bjensen
 +  # 42, Users, mdl29.net
 +  dn: uid=42,​ou=Users,​dc=mdl29,​dc=net
 +  objectClass:​ top
 +  objectClass:​ person
 +  objectClass:​ organizationalPerson
 +  objectClass:​ inetOrgPerson
 +  objectClass:​ qmailUser
 +  mailHost: mail1.mdl29.net
 +  cn: bjensen
 +  displayName:​ Babs Jensen
 +  sn: Jensen
 +  givenName: Barbara
 +  initials: BJJ
 +  uid: 42
 +  mail: bjensen@mdl29.net
 +  telephoneNumber:​ +1 408 555 1862
 +  facsimileTelephoneNumber:​ +1 408 555 1992
 +  mobile: +1 408 555 1941
 +  roomNumber: 0209
 +  carLicense: 6ABC246
 +  o: Siroe
 +  ou: Product Development
 +  departmentNumber:​ 2604
 +  employeeNumber:​ 42
 +  employeeType:​ full time
 +  preferredLanguage:​ fr, en-gb;​q=0.8,​ en;q=0.7
 +  labeledURI: http://​www.siroe.com/​users/​bjensen My Home Page
 +  ​
 +bon heu, il y a un peu trop de chose,
 +
 +nous allons prendre que ce qui nous intéresse. ​
 +
 +Et hop un autre Ldapsearch...
 +  ldapsearch "​mail=bjensen@mdl29.net"​ -b dc=mdl29,​dc=net -x mail uid cn mailhost
 +ce qui nous donne 
 +  # 42, Users, mdl29.net
 +  dn: uid=42,​ou=Users,​dc=mdl29,​dc=net
 +  mailHost: mail1.mdl29.net
 +  cn: bjensen
 +  uid: 42
 +  mail: bjensen@mdl29.net
 +
 +ha ben oui c'est mieux la ... on y plus claire ​
 +
 +donc quand postfix recoit un mail il regarde si il a le droit de le prendre. ​
 +
 +ensuite il décide de ce qu'il va en faire.
 +
 +Pour cela il va regarder dans le ldap si le mail existe et si le mailhost est égal à mail1.mdl29.net
 +
 +c'est à cela que sert les paramètres dans le main.cf
 +  virtual_mailbox_maps = hash:/​etc/​postfix/​account.cf,​ldap:​mailbox
 +
 +  mailbox_server_host = localhost
 +  mailbox_version = 3
 +  mailbox_search_base = ou=Users,​dc=saffron,​dc=net
 +  mailbox_domain = mdl29.net  ​
 +  mailbox_query_filter = (&​(mail=%s)(mailhost=mail1.mdl29.net))
 +  mailbox_result_attribute = uid
 +  mailbox_result_filter = %s/
 +
 +Pourquoi faire le test de mail1.mdl29.net?​
 +
 +ben pour pouvoir augmenter le nombre de serveur mail sans devoir changer de domaine ​
 +avec cette requete, postfix sait que c'est un mail que nous gérons et que ce mail est hebergé chez lui. Si nous avions deux serveurs nous mettrions en place  une autre regle mais cette fois ci dans le main.cf ​
 +
 +  transport_maps=ldap:​transport
 +
 +  transport_server_host = localhost
 +  transport_version = 3
 +  transport_search_base = ou=Users,​dc=saffron,​dc=net
 +  transport_domain = mdl29.net  ​
 +  transport_query_filter = (mail=%s)
 +  transport_result_attribute = mailhost
 +
 +Ce qui signifie que postfix fait une requête pour savoir qui héberge le mail 
 +et ensuite il transmet ce mail aux serveurs
 +
 +maintenant reprenons la fiche simplifié de bjenson
 +
 +  ldapsearch "​mail=bjensen@mdl29.net"​ -b dc=mdl29,​dc=net -x mail uid cn mailhost
 +ce qui nous donne 
 +
 +  # 42, Users, mdl29.net
 +  dn: uid=42,​ou=Users,​dc=mdl29,​dc=net
 +  mailHost: mail1.mdl29.net
 +  cn: bjensen
 +  uid: 42
 +  mail: bjensen@mdl29.net
 +
 +L'uid correspond à son numéro d'​adhérent. C'est ce numéro qui va l'​identifier du facon unique. L'​ensemble de la plateforme se basera sur ce numero.
 +Postfix deposera les mail dans un dossier qui comporte le numero d'​adherent
 +bjensen aura donc sa boite mail dans le numero 42.
 +
 +Maintenant Mme bjensen divorce de Mr Jensen (ben oui souvenez vous elle s'​apelle barbara) elle redeviendra Mrs Michu. et nous pouvons changer cela dans le ldap sans que le numéro d'​adhérent ne change. bon heu pour l'​instant on a pas d'​outils pour aller le changer donc vous pouvez le faire qu'en modifiant le fichier ldif et en rechargeant le ldap 
 +
 +cf. [[braveo:​docinstallsrvldap#​création des users|Doc du ldap ]]
 +
 +bien maintenant regardons dovecot le frontal pop/imap
 +Dans le fichier /​etc/​dovecot/​dovecot-ldap.conf
 +  hosts = 127.0.0.1
 +  default_pass_scheme = PLAIN
 +  auth_bind = yes
 +  ldap_version = 3
 +  base = dc=mdl29,​dc=net
 +  deref = never
 +  scope = subtree
 +  pass_attrs = uid=user
 +  pass_filter = (&​(|(cn=%u)(uid=%u))(mailhost=mail1.mdl29.net))
 +
 +Il fait lui aussi une requête pour savoir si, il héberge l'​utilisateur qui essaie de se connecter ​ avec le champ mailhost donc si mailhost est different de mail1.mdl29.net,​ l'​utilisateur se fait jeter.
 +Nous avons paramétré dovecot pour qu'il sache authentifier aussi bien avec le uid qu'​avec le cn. Le cn d'​ailleur doit correspondre au nom du mail sans l'​arobase et le nom de domaine. ​
 +
 +pendant qu'on est la dessus une petite précision
 +  (|(cn=%u)(uid=%u))
 +le caractere | veut dir ou donc ici la requete veut dir cn=%u ou uid=%u
 +  (&​(cn=%u)(uid=%u))
 +le caractere & veut dir et donc ici la requete veut dir cn=%u et uid=%u
 +et si nous voulons faire du et et ou en même temps il suffit de mettre des parentheses comme en math pour prioriser les actions. remarquez qu'a la différence des math l'​operateur se met juste après la parenthese.
 +
 +et enfin le %u est le nom d'​utilisateur que nous mettons pour nous connecter dans notre client de messagerie preferé
 +
 +donc dans dovecot-ldap quand nous faisons cette requete,
 +  (&​(|(cn=%u)(uid=%u))(mailhost=mail1.mdl29.net))
 +cela veut dire que dovecot cherche dans le ldap si il y a un cn ou un uid qui est egal à l'​utilisateur et dont son mailhost est égal à mail1.mdl29.net ​
 +
 +Donc ça signifie que l'​utilisateur peut aussi bien se connecter avec son cn qu'​avec son numero d'​adherent. ​
 +
 +Le champ 
 +  pass_attrs = uid=user ​
 +Permet de retourner l'​uid ​ pour que dovecot puisse savoir quel est le répertoire de l'​utilisateur.
 +
 +bien en ecrivant la doc, je me suis rendu compte d'une chose c'est que si nous herbergeons plusieur domaine, nous pourrions avoir deux utilisateurs ayant le meme nom exemple : 
 +  bjensen@mdl29.net ​
 +  bjensen@braveo.net
 +Il faut donc que nous décidions que le bjensen doit etre unique ou que nous decidions de changer la conf de dovecot pour que l'​authentification se fasse sur le champ mail au lieu de cn. 
 +
 +Faut y réfléchir sérieusement car pour la suite la question se pose aussi. genre l'url des blogs exemple:
 +  http://​mdl29.net/​bjensen.mdl29.net
 +ou 
 +  http://​mdl29.net/​bjensen
 +
 +ce qui pourrait etre cela 
 +  http://​bjensen.mdl29.net
 +ou 
 +  http://​bjensen42.mdl29.net
 +
 +j'en sais rien ...
braveo/docinstallfonctionnement.txt · Dernière modification: 2016/07/19 15:36 (modification externe)