informatique:reseau:messagerie:sogo

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:reseau:messagerie:sogo [2014/01/03 13:28] bn8informatique:reseau:messagerie:sogo [2024/05/03 17:01] (Version actuelle) bn8
Ligne 14: Ligne 14:
 <note>Dans cet exemple, le serveur SOGo est derrière l'URL https://mail.exemple.org et le serveur CAS est derrière l'URL https://login.exemple.org/cas. Il est indispensable que le serveur accepte son utilisation depuis les services [[imap://mail.exemple.org]] et [[https://mail.exemple.org]]. Pour cela rendez vous sur l'interface de gestion des services du serveur CAS [[https://login.exemple.org/cas/services/manage.html]].</note> <note>Dans cet exemple, le serveur SOGo est derrière l'URL https://mail.exemple.org et le serveur CAS est derrière l'URL https://login.exemple.org/cas. Il est indispensable que le serveur accepte son utilisation depuis les services [[imap://mail.exemple.org]] et [[https://mail.exemple.org]]. Pour cela rendez vous sur l'interface de gestion des services du serveur CAS [[https://login.exemple.org/cas/services/manage.html]].</note>
  
 +
 +<note important>Pour que l'authentification //CAS// fonctionne, //SOGo// doit utilisé un serveur //memcached//.</note>
  
  
Ligne 19: Ligne 21:
 **Procédure :** **Procédure :**
  
-  * Il faut tout d'abord mettre en place l'authentification CAS au niveau du serveur IMAP/SIEVE. Pour cela, je prendrais l'exemple de Dovecot avec **libpam-cas** + **libpam-ccreds** pour mettre en cache les tickets d'authentification CAS +Il faut tout d'abord mettre en place l'authentification CAS au niveau du serveur IMAP/SIEVE. Pour cela, je prendrais l'exemple de Dovecot avec **libpam-cas** + **libpam-ccreds** pour mettre en cache les tickets d'authentification CAS. Pour cela, on commence par installer le paquet Debian //libpam-cas// et //libpam-ccreds//. Le second est dans Debian mais pas le premier. On peut cependant le compiler soit même à partir des [[https://github.com/EsupPortail/esup-pam-cas|sources]] fournissant le nécessaire : 
-    * On commence par installer le paquet Debian //libpam-cas// et //libpam-ccreds//. Le second est dans Debian mais pas le premier. On peut cependant le trouver sur le net, notamment sur [[http://lcs.crdp.ac-caen.fr/wheezy/pool/main/libp/libpam-cas/|le dépôt Debian de l'académie de Caen]]+ 
-    * Un fois installer on met en place le fichier de configuration ///etc/pam_cas.conf// : <code># host from CAS server. mandatory+<code bash> 
 +apt install debhelper libpam0g-dev libssl-dev build-essential git 
 +cd /usr/local/src 
 +git clone https://github.com/EsupPortail/esup-pam-cas.git 
 +cd esup-pam-cas 
 +dpkg-buildpackage -b --no-sign 
 +sudo dpkg -i ../libpam-cas_*.deb</code> 
 + 
 +Un fois installer on met en place le fichier de configuration ///etc/pam_cas.conf// : <code># host from CAS server. mandatory
 host login.exemple.org host login.exemple.org
  
Ligne 47: Ligne 57:
 #    certificate from high level CA #    certificate from high level CA
 trusted_ca [chemin vers le certificat de la CA ayant émis les certificats SSL de l'infra]</code> trusted_ca [chemin vers le certificat de la CA ayant émis les certificats SSL de l'infra]</code>
-    * On met ensuite en place un fichier de configuration //PAM// pour //dovecot-cas//, à savoir le fichier ///etc/pam.d/dovecot-cas// : <code>auth    sufficient      pam_ccreds.so action=validate service_specific+ 
 +<note tip>Pour le paramètre **trusted_ca**, vous pouvez utiliser le fichier **/etc/ssl/certs/ca-certificates.crt** gérer par le paquet //Debian ca-certificates//.</note> 
 + 
 +On met ensuite en place un fichier de configuration //PAM// pour //dovecot-cas//, à savoir le fichier ///etc/pam.d/dovecot-cas// : <code>auth    sufficient      pam_ccreds.so action=validate service_specific
 auth    [success=ok new_authtok_reqd=ok ignore=done default=die] pam_cas.so -simap://mail.exemple.org -f/etc/pam_cas.conf auth    [success=ok new_authtok_reqd=ok ignore=done default=die] pam_cas.so -simap://mail.exemple.org -f/etc/pam_cas.conf
 auth    optional        pam_ccreds.so action=store service_specific timeout=300 auth    optional        pam_ccreds.so action=store service_specific timeout=300
 account sufficient      pam_permit.so account sufficient      pam_permit.so
 session sufficient      pam_permit.so</code> session sufficient      pam_permit.so</code>
-    * On peut tester la communication avec le serveur CAS en utilisant l'outil //castest// qui tentera la validation d'un ticket bidon auprès du serveur CAS qui devrait retourner //bas CAS ticket// mais pas une autre erreur :) + 
-    On configure ensuite dovecot pour qu'il utilise en place de son backend d'authentification actuel (LDAP par exemple), l'authentification via //PAM// en tant que le service //dovecot-cas//. Pour cela, on créé le fichier ///etc/dovecot/conf.d/11-auth-pam-cas.conf// : <code>passdb {+Cette configuration défini le principe d'authentification suivant en 3 étapes : 
 +  - Lors d'une authentification, on vérifie tout d'abord si l'utilisateur n'est pas déjà connecté dans le cache de //pam_ccreds// (situé dans le fichier ///var/cache/.security.db//). Si l'utilisateur est déjà connecté, on le laisse passé, sinon on passe à l'étape suivante 
 +  - La seconde étape utilise le module //pam_cas// pour tenter une authentification de l'utilisateur via CAS en validant le ticket CAS passé en tant que mot de passe. On passe ici deux paramètres au module CAS : 
 +    Via le paramètre //-s// on lui fourni le nom du service CAS, qui doit être identique à celui fournis au serveur CAS lors de l'obtention du ticket par le service agissant en Proxy CAS. 
 +    * Via le paramètre //-f// on lui fourni le chemin du fichier de configuration du module à savoir ///etc/pam_cas.conf// 
 +  - La troisième étape consiste, **si l'authentification de l'utilisateur à l'étape précédente à réussi**, à stocker dans le cache de //pam_ccreds// l'authentification de l'utilisateur. On passe au module //pam_ccreds// via le paramètre //timeout=300// la durée de validité de l'enregistrement dans le cache (par défaut, elle est infinie). On spécifie également que cette authentification est valable uniquement pour Dovecot au travers le paramètre //service_specific// 
 + 
 +<note>On peut ensuite tester la communication avec le serveur CAS en utilisant l'outil //castest// qui tentera la validation d'un ticket bidon auprès du serveur CAS qui devrait retourner //bas CAS ticket// mais pas une autre erreur :)</note> 
 + 
 +On configure ensuite Dovecot pour qu'il utilise en place de son backend d'authentification actuel (LDAP par exemple), l'authentification via //PAM// en tant que le service //dovecot-cas//. Pour cela, on créé le fichier ///etc/dovecot/conf.d/11-auth-pam-cas.conf// : <code>passdb {
    args = session=yes cache_key=%n dovecot-cas    args = session=yes cache_key=%n dovecot-cas
    driver = pam    driver = pam
 }</code> }</code>
-    * On peut ensuite redémarrer Dovecot pour application de cette nouvelle configuration + 
-  * Un fois l'authentification CAS en place sur le serveur IMAP, passons à SOGoOn commence par activer le service //casProxy// de SOGo en éditant le fichier ///etc/apache2/conf.d/SOGo.conf// et en décommentant les lignes suivantes et en les adaptant : <code>ProxyPass /SOGo/casProxy http://localhost/cgi-bin/cas-proxy-validate.py +On dois ensuite redémarrer Dovecot pour application de cette nouvelle configurationUn fois l'authentification CAS en place sur le serveur IMAP, passons à SOGo On commence par mettre en place le service //casProxy// de SOGo : 
-<Proxy http://localhost/app/cas-proxy-validate.py>+ 
 +<code>mkdir -p /var/www/mail/cgi-bin 
 +cd /var/www/mail/cgi-bin 
 +wget https://raw.github.com/inverse-inc/sogo/master/Scripts/cas-proxy-validate.py 
 +chmod 755 cas-proxy-validate.py 
 +apt-get install python-memcache</code> 
 + 
 +Il faut également éditer le fichier //cas-proxy-validate.py// et adapter en haut du fichier les paramètres //cas-addr// qui doit correspondre à l'adresse IP du serveur CAS (//127.0.0.1// par défaut) et le paramètre //memcached-addrs// qui doit correspondre à l'IP et le port du service //memcache// utilisé par SOGo (//127.0.0.1:11211// par défaut).  
 + 
 +On met en place ensuite le //ScriptAlias// correspondant dans la configuration Apache pour SOGo en éditant le fichier ///etc/apache2/conf.d/SOGo.conf// et en ajoutant les lignes suivantes et en les adaptant 
 + 
 +  * Apache 2.2 (ou inférieur) : <code>ScriptAlias /SOGo/casProxy /var/www/mail/cgi-bin/cas-proxy-validate.py 
 +<Location /SOGo/casProxy>
   Order deny,allow   Order deny,allow
 +  Deny from all
   Allow from [IP du serveur CAS]   Allow from [IP du serveur CAS]
   Allow from 127.0.0.1   Allow from 127.0.0.1
-</Proxy></code> +</Location></code> 
-  * Il faut ensuite redémarrer Apache pour activer le service + 
-  * On configure ensuite SOGo en exécutant en tant que l'utilisateur //cas// sur le serveur //SOGo// : <code>defaults write sogod SOGoAuthenticationType "cas" +  * Apache 2.4 (ou supérieur) : <code>ProxyPass /SOGo/casProxy ! 
-defaults write sogod SOGoCASServiceURL "https://login.exemple.org/cas/" +ScriptAlias /SOGo/casProxy /var/www/mail/cgi-bin/cas-proxy-validate.py 
-defaults write sogod WOWorkersCount 5 +<Location /SOGo/casProxy> 
-defaults write sogod SOGoIMAPCASServiceName "imap://mail.exemple.org"</code> +  Require ip [IP du serveur CAS] 
-  On redémarre ensuite //SOGo// et ça devrais marcher !+  Require ip 127.0.0.1 
 +</Location></code> 
 + 
 +Il faut ensuite redémarrer Apache pour activer le serviceOn configure ensuite SOGo en ajoutant dans le fichier ///etc/sogo/sogo.conf// les paramètres suivants : 
 +<code>SOGoAuthenticationType "cas"; 
 +SOGoCASServiceURL "https://login.exemple.org/cas/"; 
 +WOWorkersCount 5; 
 +SOGoIMAPCASServiceName "imap://mail.exemple.org";</code> 
 + 
 +On redémarre ensuite //SOGo// et ça devrais marcher !
  
 <note>En cas de problème, vous pouvez activer l'option //debug// dans le fichier ///etc/pam_cas.conf// sur le serveur IMAP et suivre l'authentification dans ///var/log/auth.log//.</note> <note>En cas de problème, vous pouvez activer l'option //debug// dans le fichier ///etc/pam_cas.conf// sur le serveur IMAP et suivre l'authentification dans ///var/log/auth.log//.</note>
Ligne 75: Ligne 119:
  
 Doc sur le sujet intéressante : http://www.esup-portail.org/consortium/espace/SSO_1B/tech/cas/cas_pam.html Doc sur le sujet intéressante : http://www.esup-portail.org/consortium/espace/SSO_1B/tech/cas/cas_pam.html
 +
 +==== Authentic2 ====
 +
 +Pour configurer SOGo pour qu'il utilise l'IDP Authentic2 comme un serveur CAS, il faut via l'interface d'administration d'Authentic2 :
 +
 +  * Créer un service CAS pour SOGo :
 +    * **Identifiant :** ce que vous voulez, par exemple le nom de domaine du SOGo
 +    * **URLs :** L'URL d'accès de votre SOGo suffixé par ///so/index//. Exemple : https://mail.exemple.com/SOGo/so/index
 +    * **Nom de l'attribut :** sélectionner un attribut correspondant au login de l'utilisateur qui devra être reconnue par une de vos //SOGoUserSources// définies dans le fichier //sogo.conf//
 +  * Créer un service CAS pour Dovecot :
 +    * **Identifiant :** ce que vous voulez, par exemple //Dovecot//
 +    * **URLs :** l'URL de service utilisée par //pam-cas// et telque définie dans le paramètre //SOGoIMAPCASServiceName// de SOGo
 +    * **Nom de l'attribut :** sélectionner un attribut correspondant au login de l'utilisateur qui devra être reconnu par Dovecot
 +    * **Mandataire :** sélectionner le service CAS précédemment créé correspondant à votre SOGo
  • informatique/reseau/messagerie/sogo.1388755683.txt.gz
  • Dernière modification : 2014/01/03 13:28
  • de bn8