tuto:ipasserelle:mail:mozilla_mcd

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tuto:ipasserelle:mail:mozilla_mcd [14/09/2012 14:37]
dani créée
tuto:ipasserelle:mail:mozilla_mcd [20/10/2020 09:21] (Version actuelle)
heuzef [Configuration sur les postes clients]
Ligne 2: Ligne 2:
  
  
-Il est possible de gérer la configuration des logiciels Mozilla Thunderbird et Mozilla Firefox de façon centralisée, grâce la fonction appelée MCD ((%%*%%%%*%%M%%*%%%%*%%ission %%*%%%%*%%C%%*%%%%*%%ontrol %%*%%%%*%%D%%*%%%%*%%esktop)) (aussi appelée AutoConfig). Le problème est simplement que cette fonction n'est pas très bien documentée. On peut trouver quelques informations par ci par là, mais rien de très complet. Cette page essaiera de combler ce vide. Je tiens quand même à préciser que je n'ai rien inventé ici, je me suis contenté de glaner des informations sur différents sites web. Une de mes principales sources d'inspiration a été [[http://www.famille-fontes.net/comments.php?y=09&m=10&entry=entry091031-193036|cette page]]+Il est possible de gérer la configuration des logiciels Mozilla Thunderbird et Mozilla Firefox de façon centralisée, grâce la fonction appelée MCD ((**M**ission **C**ontrol **D**esktop)) (aussi appelée AutoConfig). Le problème est simplement que cette fonction n'est pas très bien documentée. On peut trouver quelques informations par ci par là, mais rien de très complet. Cette page essaiera de combler ce vide. Je tiens quand même à préciser que je n'ai rien inventé ici, je me suis contenté de glaner des informations sur différents sites web. Une de mes principales sources d'inspiration a été [[http://www.famille-fontes.net/comments.php?y=09&m=10&entry=entry091031-193036|cette page]]
  
  
Ligne 11: Ligne 11:
  
  
-    * Un annuaire LDAP dans lequel les informations sur vos utilisateurs sont stockées +  * Un annuaire LDAP dans lequel les informations sur vos utilisateurs sont stockées 
-    * Un serveur Web gérant le PHP, avec les extensions ldap (php-ldap) +  * Un serveur Web gérant le PHP, avec les extensions ldap (php-ldap) 
-    * Une uniformisation des identifiants (les identifiants des utilisateurs sur les postes Windows doivent correspondre aux identifiants dans l'annuaire LDAP)+  * Une uniformisation des identifiants (les identifiants des utilisateurs sur les postes Windows doivent correspondre aux identifiants dans l'annuaire LDAP)
  
  
Ligne 22: Ligne 22:
  
  
-Le déploiement de configuration se passe en plusieurs étapes. Il faut d'abord indiquer à Thunderbird et Firefox où récupérer leur configuration. La configuration peut être récupérée de plusieurs façon (fichier local, http, ftp etc...). Dans cet exemple, ce sera une URI HTTP qui sera utilisée. À chaque démarrage, Thunderbird va contacter le serveur qui héberge la configuration, en passant en paramètre l'utilisateur en cours (qui sera récupéré dans une variable d'environnement). À partir du nom d'utilisateur, un script en PHP sur votre serveur va interroger un annuaire LDAP pour connaitre les adresses mails attribuées, et éventuellement d'autres informations (comme l'appartenance à des groupes spécifiques). La sortie de ce script PHP sera une configuration pour Thunderbird, qui sera appliquée sur le poste et conservée en cache. Si Thunderbird ne peut pas contacter le serveur, alors la dernière configuration connue sera appliqué.+Le déploiement de configuration se passe en plusieurs étapes. Il faut d'abord indiquer à Thunderbird et Firefox où récupérer leur configuration. La configuration peut être récupérée de plusieurs façon (fichier local, http, ftp etc). Dans cet exemple, ce sera une URI HTTP qui sera utilisée. À chaque démarrage, Thunderbird va contacter le serveur qui héberge la configuration, en passant en paramètre l'utilisateur en cours (qui sera récupéré dans une variable d'environnement). À partir du nom d'utilisateur, un script en PHP sur votre serveur va interroger un annuaire LDAP pour connaitre les adresses mails attribuées, et éventuellement d'autres informations (comme l'appartenance à des groupes spécifiques). La sortie de ce script PHP sera une configuration pour Thunderbird, qui sera appliquée sur le poste et conservée en cache. Si Thunderbird ne peut pas contacter le serveur, alors la dernière configuration connue sera appliquée.
  
  
Ligne 31: Ligne 31:
  
  
-    * thunderbird.php (générateur de configuration pour Thunderbird) +  * thunderbird.php (générateur de configuration pour Thunderbird)
-    *  +
-    *  +
  
 <file php thunderbird.php> <file php thunderbird.php>
Ligne 40: Ligne 37:
 ini_set('log_errors', 1); ini_set('log_errors', 1);
 ini_set('display_errors', 0); ini_set('display_errors', 0);
- +  
 + 
 require('conf.php'); require('conf.php');
- +  
 + 
 if(isset($_SERVER['QUERY_STRING']) && preg_match('/^.+@' . DOMAIN . '$/', $_SERVER['QUERY_STRING'])) { if(isset($_SERVER['QUERY_STRING']) && preg_match('/^.+@' . DOMAIN . '$/', $_SERVER['QUERY_STRING'])) {
     $temp = explode('@', $_SERVER['QUERY_STRING']);     $temp = explode('@', $_SERVER['QUERY_STRING']);
     $uid = $temp[0];     $uid = $temp[0];
- +  
 + 
     // Bind to the LDAP server     // Bind to the LDAP server
     $link = @ldap_connect(LDAP_SERVER) or die ("Couldn't connect to the LDAP server");     $link = @ldap_connect(LDAP_SERVER) or die ("Couldn't connect to the LDAP server");
Ligne 75: Ligne 72:
 } }
 ?> ?>
- +  
 + 
 // Linux / UNIX ? // Linux / UNIX ?
 if(getenv("USER") != "") { if(getenv("USER") != "") {
Ligne 95: Ligne 92:
 <?php echo $pref;?>("mail.server.server1.type", "none"); <?php echo $pref;?>("mail.server.server1.type", "none");
 <?php echo $pref;?>("mail.server.server1.userName", "nobody"); <?php echo $pref;?>("mail.server.server1.userName", "nobody");
- +  
 + 
 // SMTP config // SMTP config
 <?php echo $pref;?>("mail.smtp.defaultserver", "smtp1"); <?php echo $pref;?>("mail.smtp.defaultserver", "smtp1");
Ligne 104: Ligne 101:
 <?php echo $pref;?>("mail.smtpserver.smtp1.hostname", "<?php echo SMTP_SERVER; ?>"); <?php echo $pref;?>("mail.smtpserver.smtp1.hostname", "<?php echo SMTP_SERVER; ?>");
 <?php echo $pref;?>("mail.smtpserver.smtp1.username", "<?php echo $uid; ?>"); <?php echo $pref;?>("mail.smtpserver.smtp1.username", "<?php echo $uid; ?>");
- +  
 + 
 // Default account is acocunt2 (the personal account) // Default account is acocunt2 (the personal account)
 <?php echo $pref;?>("mail.accountmanager.defaultaccount", "account2"); <?php echo $pref;?>("mail.accountmanager.defaultaccount", "account2");
- +  
 + 
 <?php <?php
 $mail = explode('@', $user[0]['mail'][0]); $mail = explode('@', $user[0]['mail'][0]);
Ligne 118: Ligne 115:
 $identities = '' $identities = ''
 ?> ?>
- +  
 + 
 // Personnal account // Personnal account
 <?php echo $pref;?>("mail.account.account2.server", "server<?php echo $server?>"); <?php echo $pref;?>("mail.account.account2.server", "server<?php echo $server?>");
Ligne 149: Ligne 146:
 <?php echo $pref;?>("mail.account.account2.identities", "<?php echo $identities;?>"); <?php echo $pref;?>("mail.account.account2.identities", "<?php echo $identities;?>");
 <?php echo $pref;?>("mail.accountmanager.accounts", "account1,account2"); <?php echo $pref;?>("mail.accountmanager.accounts", "account1,account2");
- +  
 + 
 // Disable auto updates // Disable auto updates
 <?php echo $pref;?>("app.update.enabled", false); <?php echo $pref;?>("app.update.enabled", false);
 <?php echo $pref;?>("app.update.auto", false); <?php echo $pref;?>("app.update.auto", false);
- +  
 + 
 // Extensions // Extensions
 <?php echo $pref;?>("extensions.installDistroAddons", true); <?php echo $pref;?>("extensions.installDistroAddons", true);
 <?php echo $pref;?>("extensions.enabledScopes", 13); <?php echo $pref;?>("extensions.enabledScopes", 13);
 <?php echo $pref;?>("extensions.autoDisableScopes", 2); <?php echo $pref;?>("extensions.autoDisableScopes", 2);
- +  
 + 
 // Spam // Spam
 <?php echo $pref;?>("mail.adaptivefilters.junk_threshold", 500); <?php echo $pref;?>("mail.adaptivefilters.junk_threshold", 500);
- +  
 + 
 // Checks IMAP folders // Checks IMAP folders
 defaultPref("mail.check_all_imap_folders_for_new", true); defaultPref("mail.check_all_imap_folders_for_new", true);
- +  
 + 
 // Composition // Composition
 defaultPref("mail.default_html_action", 3); defaultPref("mail.default_html_action", 3);
- +  
 + 
 // Attachments // Attachments
 defaultPref("mail.content_disposition_type ", 1); defaultPref("mail.content_disposition_type ", 1);
- +  
 + 
 // Expunge // Expunge
 defaultPref("mail.imap.expunge_option", 3); defaultPref("mail.imap.expunge_option", 3);
Ligne 184: Ligne 181:
 // recipients email address if it doesn't have a domain // recipients email address if it doesn't have a domain
 <?php echo $pref;?>("mail.enable_autocomplete", true); <?php echo $pref;?>("mail.enable_autocomplete", true);
- +  
 + 
 // Hide useless messages // Hide useless messages
 <?php echo $pref;?>("mail.ui.show.migration.on.upgrade", false); <?php echo $pref;?>("mail.ui.show.migration.on.upgrade", false);
Ligne 192: Ligne 189:
 <?php echo $pref;?>("mailnews.start_page_override.mstone", "ignore"); <?php echo $pref;?>("mailnews.start_page_override.mstone", "ignore");
 <?php echo $pref;?>("mail.rights.version", 1); <?php echo $pref;?>("mail.rights.version", 1);
- +  
 + 
 <?php <?php
 // Include other conf fragment if they exist // Include other conf fragment if they exist
Ligne 203: Ligne 200:
 ?> ?>
 </file> </file>
-    * firefox.php (générateur de configuration pour Firefox \\  
-    *  
-    *  
  
 +
 +  * firefox.php (générateur de configuration pour Firefox)
  
 <file php firefox.php> <file php firefox.php>
- + 
 <?php <?php
 ini_set('log_errors', 1); ini_set('log_errors', 1);
 ini_set('display_errors', 0); ini_set('display_errors', 0);
- +  
 + 
 require('conf.php'); require('conf.php');
- +  
 + 
 if(isset($_SERVER['QUERY_STRING']) && preg_match('/^.+@' . DOMAIN . '$/', $_SERVER['QUERY_STRING'])) { if(isset($_SERVER['QUERY_STRING']) && preg_match('/^.+@' . DOMAIN . '$/', $_SERVER['QUERY_STRING'])) {
     $temp = explode('@', $_SERVER['QUERY_STRING']);     $temp = explode('@', $_SERVER['QUERY_STRING']);
     $uid = $temp[0];     $uid = $temp[0];
- +  
 + 
     // Bind to the LDAP server     // Bind to the LDAP server
     // Not used for now, but might be usefull one day to generate conf per group or per user     // Not used for now, but might be usefull one day to generate conf per group or per user
Ligne 248: Ligne 243:
     if (preg_match('/^https?:///', $user[0]['labeleduri'][0]))     if (preg_match('/^https?:///', $user[0]['labeleduri'][0]))
         $url = $user[0]['labeleduri'][0];         $url = $user[0]['labeleduri'][0];
- +  
 + 
 } }
 else { else {
Ligne 258: Ligne 253:
 <?php echo $pref;?>("app.update.enabled", false); <?php echo $pref;?>("app.update.enabled", false);
 <?php echo $pref;?>("app.update.auto", false); <?php echo $pref;?>("app.update.auto", false);
- +  
 + 
 // Extensions // Extensions
 <?php echo $pref;?>("extensions.installDistroAddons", true); <?php echo $pref;?>("extensions.installDistroAddons", true);
 <?php echo $pref;?>("extensions.enabledScopes", 13); <?php echo $pref;?>("extensions.enabledScopes", 13);
 <?php echo $pref;?>("extensions.autoDisableScopes", 2); <?php echo $pref;?>("extensions.autoDisableScopes", 2);
- +  
 + 
 // Disable the "know your rights" message // Disable the "know your rights" message
 <?php echo $pref;?>("browser.rights.3.shown", true); <?php echo $pref;?>("browser.rights.3.shown", true);
- +  
 + 
 // Home page // Home page
 <?php <?php
Ligne 282: Ligne 277:
 <?php echo $pref;?>("startup.homepage_override_url", ""); <?php echo $pref;?>("startup.homepage_override_url", "");
 <?php echo $pref;?>("startup.homepage_welcome_url", ""); <?php echo $pref;?>("startup.homepage_welcome_url", "");
- +  
 + 
 // Do not check for default browser // Do not check for default browser
 <?php echo $pref;?>("browser.shell.checkDefaultBrowser", false); <?php echo $pref;?>("browser.shell.checkDefaultBrowser", false);
- +  
 + 
 // Disable popup blocker // Disable popup blocker
 // not that very useful anymore, and blocks legitim popups from SOGo // not that very useful anymore, and blocks legitim popups from SOGo
 <?php echo $pref;?>("dom.disable_open_during_load", false); <?php echo $pref;?>("dom.disable_open_during_load", false);
- +  
 + 
 // Block 3rd party cookies // Block 3rd party cookies
 <?php echo $pref;?>("network.cookie.cookieBehavior", 1); <?php echo $pref;?>("network.cookie.cookieBehavior", 1);
- +  
 + 
 <?php <?php
 // Include other conf fragment if they exist // Include other conf fragment if they exist
Ligne 306: Ligne 301:
 ?> ?>
 </file> </file>
-    *  
-conf.php (fichier de configuration commun pour thunderbird et firefox) 
  
- +  * conf.php (fichier de configuration commun pour thunderbird et firefox)
-====  ==== +
- +
- +
-====  +
- +
- +
- ====+
  
  
 <file php conf.php> <file php conf.php>
 <?php <?php
- +  
 + 
 define('DOMAIN', 'domain.tld'); define('DOMAIN', 'domain.tld');
 define('USER_BASE', 'ou=Users,dc=domain,dc=tld'); define('USER_BASE', 'ou=Users,dc=domain,dc=tld');
Ligne 334: Ligne 320:
 define('HOME_URL', 'https://www.my-super-company.com'); define('HOME_URL', 'https://www.my-super-company.com');
 $NOENFORCEGROUPS = array('admins','bigboss'); $NOENFORCEGROUPS = array('admins','bigboss');
- +  
 + 
 ?> ?>
 </file> </file>
  
  
-====  +====  Explications sur conf.php ====
-Explications sur conf.php ====+
  
  
Ligne 356: Ligne 341:
 Alias /thunderbird.cfg /usr/share/mozilla-mcd/thunderbird.php Alias /thunderbird.cfg /usr/share/mozilla-mcd/thunderbird.php
 Alias /firefox.cfg /usr/share/mozilla-mcd/firefox.php Alias /firefox.cfg /usr/share/mozilla-mcd/firefox.php
- +  
 + 
 <Directory /usr/share/mozilla-mcd/> <Directory /usr/share/mozilla-mcd/>
     AddType application/x-httpd-php .php .php3     AddType application/x-httpd-php .php .php3
Ligne 375: Ligne 360:
  
  
-Vous pouvez déjà vérifier le fonctionnement en vous rendant avec votre navigateur sur https://votre-serveur.com/thunderbird.php?utilisateur@domain.tld (utilisateur doit être un identifiant valide et présent dans votre annuaire LDAP). N'allez pas plus loin si cette partie ne fonctionne pas, vous devez ici obtenir un fichier de configuration.+Vous pouvez déjà vérifier le fonctionnement en vous rendant avec votre navigateur sur [[https://votre-serveur.com/thunderbird.php?utilisateur@domain.tld|https://votre-serveur.com/thunderbird.php?utilisateur@domain.tld]] (utilisateur doit être un identifiant valide et présent dans votre annuaire LDAP). N'allez pas plus loin si cette partie ne fonctionne pas, vous devez ici obtenir un fichier de configuration.
  
  
Ligne 384: Ligne 369:
  
  
-    * C:\Program Files\Mozilla Thunderbird\defaults\pref\autoconf.js +  * C:\Program Files\Mozilla Thunderbird\defaults\pref\autoconf.js
-    *  +
-    * +
  
- +<file javascript autoconf.js>// Autoconfig
-<file javascript autoconf.js> +
-// Autoconfig+
 pref("general.config.obscure_value", 0); pref("general.config.obscure_value", 0);
 pref("general.config.filename", "thunderbird.cfg"); pref("general.config.filename", "thunderbird.cfg");
 </file> </file>
-    * C:\Program Files\Mozilla Thunderbird\thunderbird.cfg 
  
  
-<file javascript thunderbird.cfg+  * C:\Program Files\Mozilla Thunderbird\thunderbird.cfg
-// Autoconf+
  
  
 +<file javascript thunderbird.cfg>// Autoconf
 + 
 + 
 if(getenv("USER") != "") { if(getenv("USER") != "") {
 var user = getenv("USER"); var user = getenv("USER");
Ligne 406: Ligne 388:
 var env_user = getenv("USERNAME"); var env_user = getenv("USERNAME");
 } }
- +  
 + 
 var mail = env_user + '@domain.tld'; var mail = env_user + '@domain.tld';
- +  
 + 
 lockPref("mail.identity.useremail", mail); lockPref("mail.identity.useremail", mail);
 lockPref("autoadmin.append_emailaddr", true); lockPref("autoadmin.append_emailaddr", true);
Ligne 419: Ligne 401:
  
  
-    * C:\Program Files\Mozilla Firefox\defaults\pref\autoconf.js +  * C:\Program Files\Mozilla Firefox\defaults\pref\autoconf.js
-    *  +
-    * +
  
  
-<file javascript autoconf.js> +<file javascript autoconf.js>// Autoconfig
-// Autoconfig+
 pref("general.config.obscure_value", 0); pref("general.config.obscure_value", 0);
 pref("general.config.filename", "firefox.cfg"); pref("general.config.filename", "firefox.cfg");
 </file> </file>
-    *  
-C:\Program Files^Mozilla Firefox\firefox.cfg 
  
  
-<file javascript firefox.cfg+  * C:\Program Files\Mozilla Firefox\firefox.cfg
-// Autoconf+
  
  
 +<file javascript firefox.cfg>// Autoconf
 + 
 + 
 if(getenv("USER") != "") { if(getenv("USER") != "") {
 var user = getenv("USER"); var user = getenv("USER");
Ligne 442: Ligne 421:
 var env_user = getenv("USERNAME"); var env_user = getenv("USERNAME");
 } }
- +  
 + 
 var mail = env_user + '@domain.tld'; var mail = env_user + '@domain.tld';
- +  
 + 
 lockPref("mail.identity.useremail", mail); lockPref("mail.identity.useremail", mail);
 lockPref("autoadmin.append_emailaddr", true); lockPref("autoadmin.append_emailaddr", true);
Ligne 455: Ligne 434:
  
  
-Il est possible de déployer ces fichiers de configuration sur l'ensemble de vos postes, on utilise par exemple [[http://www.wpkg.org|WPKG]] pour ça.+Il est possible de déployer ces fichiers de configuration sur l'ensemble de vos postes, avec [[http://www.wpkg.org|WPKG]] par exemple.
  
  • tuto/ipasserelle/mail/mozilla_mcd.1347626228.txt.gz
  • Dernière modification: 14/09/2012 14:37
  • de dani