SlideShare une entreprise Scribd logo
1  sur  40
Forum Zimbra 2012
  MESSAGERIE & SSO
Plan


                                      KERBEROS &       SHIBBOLETH &
  Introduction      CAS & Zimbra                                            Cas Clients
                                        Zimbra            Zimbra
• Problématique   • Principe        • Principe        • Définition       • Inra
• SSO             • Mise en œuvre   • Mise en œuvre   • Principe         • Univ. Tours
                  • Avantage /      • Avantage /      • Etat des lieux   • HCC
                    Inconvénient      Inconvénient    • Mise en œuvre    • InstitutTelecom




                                                                                             2
Introduction
• Problèmatique :
Un SI existant sans gestion centralisée des logins
  et des mots de passe
1 à n applications ⇒ 1 application = 1 login + 1
  mot de passe
soit n application = 1 login + x mot de passe
soit n application = y login + x mot de passe


                                                 3
Introduction
• Problèmatique:
Comment trouver un équilibre entre sécurité et
  simplicité ?
- Sécurité pour le SI
- Simplicité pour la maintenance du SI
- Simplicité pour l’utilisateur



                                                 4
Introduction

• SSO = Single Sign On
Une authentification => Accès à 1 ou plusieurs
   ressources
Mise en œuvre :
 - d’une configuration simple à la plus
   compliquée


                                                 5
Zimbra &


• CAS = Central Authentication Server
• Plusieurs implémentations & langages :
   – Java (Consortium Jasig Open Source)
   – Ruby
   – Perl




                                           6
Zimbra &
 Principe




            7
Zimbra &
                      Mise en œuvre
• Pré-requis
   – Disposer d’un référentiel utilisateurs + mots de passe
   (Active Directory, serveur OpenLDAP, serveur MySQL…)
   – Un serveur accueillant le service CAS
   – Un utilisateur ayant les droits de lecture sur le référentiel
   – Synchronisation avec un serveur de temps commun (NTP)




                                                                     8
Zimbra &
                     Mise en œuvre
• Installation
   – Exemple à partir de l’implémentation de JASIG
   – Un serveur d’application JEE (ex: Tomcat)
   – Déploiement de l’application (cas.war)


• Paramétrage du serveur d’application :
  Le serveur doit fournir du https


                                                     9
Zimbra &
                    Mise en œuvre
• Paramétrage du service CAS
  Configuration du service CAS pour le référentiel
  sélectionné :
   – AD
   – Serveur OpenLDAP
   – MySQL
   – Autres …
   Ajout des bibliothèques correspondantes aux modules


                                                         10
Zimbra &
                     Mise en œuvre
• CASsification de Zimbra :
   – Importation du certificat CAS (SSL)
   – Installation des bibliothèques clientes CAS sur Zimbra
   – Modification du fichier zimbra.web.xml.in : redirection
     d’URL vers l’application CAS




                                                               11
Zimbra &
                      Mise en œuvre
• CASsification de Zimbra
   – Génération de la clef de pré authentification du domaine
     de messagerie
   – Création du fichier preauth.jsp
• Résultats :
   – Si l’utilisateur n’est pas encore connu : mire de login CAS
   – Si l’utilisateur est déjà connu via une application déjà
     CASsifiée : l’utilisateur arrive directement dans son compte
     Zimbra


                                                                12
Zimbra &
               Avantage / Inconvénient

• Mise en œuvre simple       • La CASsification est
• Possibilité de CASsifier     uniquement au niveau du
  plusieurs domaines de        web
  messagerie avec un seul    • Pas possible de CASsifier la
  cluster Zimbra               synchronisation mobile
• Faire de Zimbra un point     (SyncML)
  d’entrée unique pour les   • Protocole IMAP non
  autres applications          CASsifié
  CASifiées
                                                         13
Zimbra & Kerberos
Une association pour dépasser les
       limitations du Web




• CAS + Référentiel utilisateurs : limité au web
• CAS + module Kerberos/SPNEGO : une authentification
  unique de l’OS aux applications Web
                                                        14
Zimbra & Kerberos
                            Principe

• 1 ère phase : l’utilisateur se connecte à sa session applicative
  de son OS => première et unique authentification
• 2 ième phase : l’utilisateur lance son navigateur pour aller
  dans sa messagerie Zimbra => pas d’authentification

                      AUTO LOGIN
Une solution Simple dans la forme mais compliquée dans le fond



                                                                     15
Zimbra & Kerberos
                                 Mise en œuvre
• Pré-requis
    –   OS doit être kerbérisé
    –   Un utilisateur ayant des droits administrateur sur l’AD
    –   le serveur CAS doit être intégré au royaume Kerberos
    –   Un compte utilisateur dédié pour la création de la keytab
• Installation :
    – Reprise de l’ensemble des opérations d’un CAS classique
    – Ajout d’un module supplémentaire à CAS : SPNEGO
      Simple and Protected GSSAPI Negotiation Mechanism
    – Ajout des bibliothèques supplémentaires :
         – jcifs-1.2.15.jar
         – jcifs-ext-0.9.4.jar
    – Bibliothèques clientes Kerberos


                                                                    16
Zimbra & Kerberos
                               Mise en œuvre
• Paramétrage :
   –   Fichier krb5.conf
   –   fichier smb.conf
   –   Net join –U <user-admin> -S <IP_AD>
   –   Module SPNEGO :
        •   pom.xml
        •   cas.properties
        •   login-webflow.xml
        •   cas-servlet.xml
        •   deployerConfigContext.xml
        •   login.conf (à créer)
   – AD : création d’un keytab avec service principal
   – Migration du fichier keytab sur le server CAS



                                                        17
Zimbra & Kerberos
                            Mise en œuvre
• Paramétrage IE :
   – outils -> avancé -> sécurité cocher Activer l'authentification Windows
     intégrée.
   – onglet général -> intranet local -> site -> avancé -> et ajouter l'adresse
     https://cas-server
   – Redémarrage IE
• Paramétrage FireFox :
   – dans la barre d'adresse taper about:config
   – Modification de l’attribut network.automatic-ntlm-auth.trusted-uris :
     https://cas-server
   – Redémarrage Firefox



                                                                              18
Zimbra & Kerberos
                      Mise en œuvre
• CASsification de Zimbra (vu précédemment)




                                              19
Zimbra & Kerberos
Une authentification forte au service de l’utilisateur
   • 1 mot de passe + 1 login = accès à tout
   • Basé sur des standards (RFC 4120, RFC 4537, RFC
     5021, RFC 5896, RFC 6111, RFC 6112, RFC 6113 )
   • 1 serveur CAS => auto login sur aplications CASsifiées
   • Très contraignant dans l’implémentation :
      –   Nécessité d’avoir des accès administrateurs
      –   Nécessité de modifier tous les postes clients
      –   Sans AD nécessité d’installer un KDC
      –   Maintenance



                                                          20
Zimbra & Shibboleth
                            Définition

• La shibbolethisation permet d'utiliser un mécanisme de
  SSO afin d'accéder à des ressources dont les propriétaires
  ne gèrent pas les utilisateurs.

• Implémentation SAMLv2 (Security Assertion Markup
  Language version 2), standard soutenu par OASIS.




                                                               21
Zimbra & Shibboleth
Principe : repose sur 2 briques + 1 optionnelle

• IDP : Identity Provider. Correspond à un fournisseur
  d'identité (nom d'utilisateur et mot de passe).
• SP : Service Provider. C'est lui qui présente le service
  shibbolitisé et fourni la ressource à l'utilisateur.
• WAYF : Where Are You From ? Permet de sélectionner le
  fournisseur d'identité auquel appartient l'utilisateur.




                                                             22
Zimbra & Shibboleth
            Zimbra et Shibboleth : état des lieux



• Implémentation SAMLv2 dans Zimbra = incomplète
• Classe Java existantes
• Assertions SAML nécessaires au niveau de Zimbra =
  inconnues


                   Un mariage impossible ?


                                                      23
Zimbra & Shibboleth
                      Mise en oeuvre
• Déplacement de la problématique
• Utilisation d’un reverse proxy Apache HTTP
• Pré authentification déléguée => accès au compte de
  messagerie Zimbra




                                                        24
Zimbra & Shibboleth
                               Mise en oeuvre

• Pré-requis :
   – Un serveur http dédié
   – Synchronisation (NTP)
• Installation : apache http
• Paramétrage Apache HTTP:
   –   Activation mod_shib
   –   Activation de l’interpréteur PHP (php-xml-util)
   –   Activation SSL
   –   vhost



                                                         25
Zimbra & Shibboleth
                                 Mise en oeuvre

• Installation du service shibboleth
• Paramétrage du démon shibd
   – Génération clef privée + certificat
   – Récupération du certificat de la fédération d’identidé
   – shibboleth2.xml :
       •   Hostname du SP
       •   URL de l’IDP
       •   URL du WAYF
       •   Les attributs SAML à récupérer
       •   URL des META DATA
       •   Certificats …
   – attribute-map.xml

                                                              26
Zimbra & Shibboleth
                            Mise en oeuvre

• Création de la pré authentification
   – Déporté au niveau du serveur proxy
   – Codée en PHP


• Schéma du proxy




                                             27
Zimbra & Shibboleth

•   Possibilité de transmettre des attributs
•   Un SSO sur des ressources tierces
•   Beaucoup d’interaction entre les différents acteurs
•   Maîtrise des chaînes de certification
•   Technologie faiblement déployée




                                                          28
Zimbra & Shibboleth &




                        29
Zimbra & SSO
                            Conclusion
•   Portail d’accès unique
•   Différentes techniques : CAS, Kerberos, Shibboleth, …
•   Un mix des différentes techniques
•   Souplesse de Zimbra
•   Une communauté Open Source innovante et réactive




                                                            30
Quelques exemples chez nos clients :
• INRA : Yaziba.net
   – 10 000 collaborateurs
   – 93 sites distants sur toute la France
   – Inscription auto avec LDAP et CAS


• Université de Tours : Zimbra sur site
   – 33 000 collaborateurs
   – Plusieurs sites sur Tours et ses environs
   – Intégration CAS




                                                 31
Quelques exemples chez nos clients :

• Hôpitaux Civils de Colmar : Zimbra sur site
   – 1 500 collaborateurs
   – CAS/Kerberos auto-login


• Institut Télécom : Zimbra sur site
   – 8 000 collaborateurs
   – 3 sites répartis sur toute la France
   – Service Provider Shibboleth




                                                32
Des questions ?




                  33
Annexes
Ressources Web
•   http://www.jasig.org/cas
•   http://code.google.com/p/rubycas-server/
•   http://lemonldap-ng.org/documentation/1.1/authcas
•   https://wiki.jasig.org/display/CAS/CASifying+Zimbra+6.0
•   http://wefunction.com/2008/07/function-free-icon-set/
•   http://shibboleth.internet2.edu/




                                                              35
Bibliographie
• Single Sign-On open-source avec CAS (Central Authentication Service) :
  Pascal Aubry, Vincent Mathieu, Julien Marchal




                                                                           36
<!-- CAS filter configuration begin -->
   <filter>
        <filter-name>CasSingleSignOutFilter</filter-name>
        <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
  </filter>
    <filter-mapping>
      <filter-name>CasSingleSignOutFilter</filter-name>
         <url-pattern>/*</url-pattern>
   </filter-mapping>
   <listener>
     <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
  </listener>

  <filter>
    <filter-name>CasAuthenticationFilter</filter-name>
    <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
    <init-param>
        <param-name>casServerLoginUrl</param-name>
        <param-value>https://cas-server:8443/login</param-value>
    </init-param>
    <init-param>
        <param-name>serverName</param-name>
        <param-value>http://zimbra-server:80</param-value>
    </init-param>
  </filter>



                                                                                                      37
<filter-mapping>
      <filter-name>CasAuthenticationFilter</filter-name>
      <url-pattern>/public/preauth.jsp</url-pattern>
    </filter-mapping>

  <filter>
     <filter-name>CasValidationFilter</filter-name>
     <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
     <init-param>
       <param-name>casServerUrlPrefix</param-name>
       <param-value>https://cas-server:8443/</param-value>
     </init-param>
     <init-param>
       <param-name>serverName</param-name>
       <param-value>http://zimbra-server:80</param-value>
</init-param>
     <init-param>
       <param-name>redirectAfterValidation</param-name>
       <param-value>true</param-value>
     </init-param>
  </filter>

  <filter-mapping>
     <filter-name>CasValidationFilter</filter-name>
     <url-pattern>/*</url-pattern>
  </filter-mapping>
  <filter>
     <filter-name>CasHttpServletRequestWrapperFilter</filter-name>
     <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
  </filter>
  <filter-mapping>
     <filter-name>CasHttpServletRequestWrapperFilter</filter-name>
     <url-pattern>/*</url-pattern>
  </filter-mapping>
<!-- CAS filter configuration end -->
                                                                                                              38
Krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 ticket_lifetime = 24000
 default_realm = DOMAIN.TLD
 default_keytab_name = /var/lib/tomcat6/webapps/cas-
     server/spnegoaccount.keytab
 dns_lookup_realm = false
 dns_lookup_kdc = true
 default_tkt_enctypes = rc4-hmac des-cbc-md5
 default_tgs_enctypes = rc4-hmac des-cbc-md5

[realms]
 DOMAIN.TLD = {
  kdc = srvad.domain.tld:88
  admin_server = srvad.domain.tld:749
  default_domain = domain.tld
 }

[domain_realm]
 .domain.tld = DOMAIN.TLD
 domain.tld = DOMAIN.TLD




                                                       39
• Net join –U <user-admin> -S <IP_AD>
• ktpass.exe /out spnegocas.keytab /princ HTTP/cas-
  server@REALM /pass * /mapuser spnegocas@REALM /ptype
  krb5_nt_principal /crypto DES-CBC-MD5




                                                         40

Contenu connexe

Tendances

Exchange 2013 Dimensionnement et Performance
Exchange 2013 Dimensionnement et Performance Exchange 2013 Dimensionnement et Performance
Exchange 2013 Dimensionnement et Performance Microsoft Technet France
 
L’hyperconvergence au cœur du Software-defined data center
L’hyperconvergence au cœur du Software-defined data centerL’hyperconvergence au cœur du Software-defined data center
L’hyperconvergence au cœur du Software-defined data centerColloqueRISQ
 
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Découverte et In...
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Découverte et In...Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Découverte et In...
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Découverte et In...Alphorm
 
2010-12-13 RBS pour SharePoint 2010 - Club SharePoint
2010-12-13 RBS pour SharePoint 2010 - Club SharePoint2010-12-13 RBS pour SharePoint 2010 - Club SharePoint
2010-12-13 RBS pour SharePoint 2010 - Club SharePointPatrick Guimonet
 
Sécuriser vos accès nomades pour accéder à Exchange et Lync
Sécuriser vos accès nomades pour accéder à Exchange et LyncSécuriser vos accès nomades pour accéder à Exchange et Lync
Sécuriser vos accès nomades pour accéder à Exchange et LyncMicrosoft Technet France
 
alphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationalphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationAlphorm
 
Alphorm.com Formation Nouveautés Windows Server 2016
Alphorm.com Formation Nouveautés Windows Server 2016Alphorm.com Formation Nouveautés Windows Server 2016
Alphorm.com Formation Nouveautés Windows Server 2016Alphorm
 
Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les FondamentauxAlphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les FondamentauxAlphorm
 
Alphorm.com Formation Active Directory 2016 : Le Guide complet de l'architecture
Alphorm.com Formation Active Directory 2016 : Le Guide complet de l'architectureAlphorm.com Formation Active Directory 2016 : Le Guide complet de l'architecture
Alphorm.com Formation Active Directory 2016 : Le Guide complet de l'architectureAlphorm
 
Alphorm.com : Formation Active directory 2008 R2 (70-640)
Alphorm.com : Formation Active directory 2008 R2 (70-640)Alphorm.com : Formation Active directory 2008 R2 (70-640)
Alphorm.com : Formation Active directory 2008 R2 (70-640)Alphorm
 
Windows Azure IaaS: machines virtuelles, réseau, ...
Windows Azure IaaS: machines virtuelles, réseau, ... Windows Azure IaaS: machines virtuelles, réseau, ...
Windows Azure IaaS: machines virtuelles, réseau, ... Microsoft Technet France
 
Alphorm.com Support de la Formation VMware vSphere 6 - Clustering HA, DRS et ...
Alphorm.com Support de la Formation VMware vSphere 6 - Clustering HA, DRS et ...Alphorm.com Support de la Formation VMware vSphere 6 - Clustering HA, DRS et ...
Alphorm.com Support de la Formation VMware vSphere 6 - Clustering HA, DRS et ...Alphorm
 
Alfresco workdesk introduction_fr
Alfresco workdesk introduction_frAlfresco workdesk introduction_fr
Alfresco workdesk introduction_frMichael Harlaut
 
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultantAlphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultantAlphorm
 
Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixte
Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixteAlphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixte
Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixteAlphorm
 
Alphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm
 
Techdays 2009 - La virtualisation de machines avec Hyper-V
Techdays 2009 - La virtualisation de machines avec Hyper-VTechdays 2009 - La virtualisation de machines avec Hyper-V
Techdays 2009 - La virtualisation de machines avec Hyper-Vfabricemeillon
 

Tendances (20)

Exchange 2013 Dimensionnement et Performance
Exchange 2013 Dimensionnement et Performance Exchange 2013 Dimensionnement et Performance
Exchange 2013 Dimensionnement et Performance
 
L’hyperconvergence au cœur du Software-defined data center
L’hyperconvergence au cœur du Software-defined data centerL’hyperconvergence au cœur du Software-defined data center
L’hyperconvergence au cœur du Software-defined data center
 
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Découverte et In...
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Découverte et In...Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Découverte et In...
Alphorm.com Formation Citrix Virtual Apps et Desktops 7.1x : Découverte et In...
 
Au-delà de Small Business Server
Au-delà de Small Business ServerAu-delà de Small Business Server
Au-delà de Small Business Server
 
Exchange Stockage : Mythes et Réalités
Exchange Stockage : Mythes et RéalitésExchange Stockage : Mythes et Réalités
Exchange Stockage : Mythes et Réalités
 
2010-12-13 RBS pour SharePoint 2010 - Club SharePoint
2010-12-13 RBS pour SharePoint 2010 - Club SharePoint2010-12-13 RBS pour SharePoint 2010 - Club SharePoint
2010-12-13 RBS pour SharePoint 2010 - Club SharePoint
 
Sécuriser vos accès nomades pour accéder à Exchange et Lync
Sécuriser vos accès nomades pour accéder à Exchange et LyncSécuriser vos accès nomades pour accéder à Exchange et Lync
Sécuriser vos accès nomades pour accéder à Exchange et Lync
 
alphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administrationalphorm.com - Formation PostgreSQL administration
alphorm.com - Formation PostgreSQL administration
 
Alphorm.com Formation Nouveautés Windows Server 2016
Alphorm.com Formation Nouveautés Windows Server 2016Alphorm.com Formation Nouveautés Windows Server 2016
Alphorm.com Formation Nouveautés Windows Server 2016
 
Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les FondamentauxAlphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
Alphorm.com Formation Microsoft Azure (AZ-900) : Les Fondamentaux
 
Alphorm.com Formation Active Directory 2016 : Le Guide complet de l'architecture
Alphorm.com Formation Active Directory 2016 : Le Guide complet de l'architectureAlphorm.com Formation Active Directory 2016 : Le Guide complet de l'architecture
Alphorm.com Formation Active Directory 2016 : Le Guide complet de l'architecture
 
Alphorm.com : Formation Active directory 2008 R2 (70-640)
Alphorm.com : Formation Active directory 2008 R2 (70-640)Alphorm.com : Formation Active directory 2008 R2 (70-640)
Alphorm.com : Formation Active directory 2008 R2 (70-640)
 
Windows Azure IaaS: machines virtuelles, réseau, ...
Windows Azure IaaS: machines virtuelles, réseau, ... Windows Azure IaaS: machines virtuelles, réseau, ...
Windows Azure IaaS: machines virtuelles, réseau, ...
 
Alphorm.com Support de la Formation VMware vSphere 6 - Clustering HA, DRS et ...
Alphorm.com Support de la Formation VMware vSphere 6 - Clustering HA, DRS et ...Alphorm.com Support de la Formation VMware vSphere 6 - Clustering HA, DRS et ...
Alphorm.com Support de la Formation VMware vSphere 6 - Clustering HA, DRS et ...
 
Alfresco workdesk introduction_fr
Alfresco workdesk introduction_frAlfresco workdesk introduction_fr
Alfresco workdesk introduction_fr
 
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultantAlphorm.com Formation  RDS Windows Server 2008 R2 - Guide du consultant
Alphorm.com Formation RDS Windows Server 2008 R2 - Guide du consultant
 
Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixte
Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixteAlphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixte
Alphorm.com Formation Linux LPIC-3 (examen 300) Environnement mixte
 
Alphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft HyperconvergenceAlphorm.com Formation Microsoft Hyperconvergence
Alphorm.com Formation Microsoft Hyperconvergence
 
Quoi de neuf dans Exchange Server 2013
Quoi de neuf dans Exchange Server 2013Quoi de neuf dans Exchange Server 2013
Quoi de neuf dans Exchange Server 2013
 
Techdays 2009 - La virtualisation de machines avec Hyper-V
Techdays 2009 - La virtualisation de machines avec Hyper-VTechdays 2009 - La virtualisation de machines avec Hyper-V
Techdays 2009 - La virtualisation de machines avec Hyper-V
 

Similaire à Forum Zimbra 2012 Zimbra et la SSO

Active Directory : nouveautés Windows Server 2012
Active Directory : nouveautés Windows Server 2012Active Directory : nouveautés Windows Server 2012
Active Directory : nouveautés Windows Server 2012Microsoft Technet France
 
Installation Zimbra.pdf
Installation Zimbra.pdfInstallation Zimbra.pdf
Installation Zimbra.pdfssuser64f0591
 
Développer et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftDévelopper et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftLeTesteur
 
Alphorm.com Formation Configuration des services avancés de Windows Server 20...
Alphorm.com Formation Configuration des services avancés de Windows Server 20...Alphorm.com Formation Configuration des services avancés de Windows Server 20...
Alphorm.com Formation Configuration des services avancés de Windows Server 20...Alphorm
 
SUSE Expert Days Paris 2018 – Sécurité et Gestion des Systèmes
SUSE Expert Days Paris 2018 – Sécurité et Gestion des SystèmesSUSE Expert Days Paris 2018 – Sécurité et Gestion des Systèmes
SUSE Expert Days Paris 2018 – Sécurité et Gestion des SystèmesSUSE
 
Zabbix - fonctionnement, bonnes pratiques, inconvenients
Zabbix - fonctionnement, bonnes pratiques, inconvenientsZabbix - fonctionnement, bonnes pratiques, inconvenients
Zabbix - fonctionnement, bonnes pratiques, inconvenientsbiapy
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Christophe Laporte
 
Net Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceNet Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceRSD
 
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6 Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6 Alphorm
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Antoine Rey
 
MSCS : Windows Server 2016 Quoi de neuf pour votre datacenter
MSCS : Windows Server 2016 Quoi de neuf pour votre datacenterMSCS : Windows Server 2016 Quoi de neuf pour votre datacenter
MSCS : Windows Server 2016 Quoi de neuf pour votre datacenterMickaelLOPES91
 
Alphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm
 
Serveurs core et virtualisation
Serveurs core et virtualisationServeurs core et virtualisation
Serveurs core et virtualisationChristophe Laporte
 
Introduction à Cloud Foundry et au PaaS
Introduction à Cloud Foundry et au PaaSIntroduction à Cloud Foundry et au PaaS
Introduction à Cloud Foundry et au PaaSGerard Konan
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Camille Roux
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsFactoVia
 

Similaire à Forum Zimbra 2012 Zimbra et la SSO (20)

Active Directory : nouveautés Windows Server 2012
Active Directory : nouveautés Windows Server 2012Active Directory : nouveautés Windows Server 2012
Active Directory : nouveautés Windows Server 2012
 
Installation Zimbra.pdf
Installation Zimbra.pdfInstallation Zimbra.pdf
Installation Zimbra.pdf
 
Développer et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoftDévelopper et déployer WordPress en environnement microsoft
Développer et déployer WordPress en environnement microsoft
 
Alphorm.com Formation Configuration des services avancés de Windows Server 20...
Alphorm.com Formation Configuration des services avancés de Windows Server 20...Alphorm.com Formation Configuration des services avancés de Windows Server 20...
Alphorm.com Formation Configuration des services avancés de Windows Server 20...
 
SUSE Expert Days Paris 2018 – Sécurité et Gestion des Systèmes
SUSE Expert Days Paris 2018 – Sécurité et Gestion des SystèmesSUSE Expert Days Paris 2018 – Sécurité et Gestion des Systèmes
SUSE Expert Days Paris 2018 – Sécurité et Gestion des Systèmes
 
22462A_01.pptx
22462A_01.pptx22462A_01.pptx
22462A_01.pptx
 
Zabbix - fonctionnement, bonnes pratiques, inconvenients
Zabbix - fonctionnement, bonnes pratiques, inconvenientsZabbix - fonctionnement, bonnes pratiques, inconvenients
Zabbix - fonctionnement, bonnes pratiques, inconvenients
 
Présentation Nano Server MS Afterwork Nouméa
Présentation Nano Server MS Afterwork NouméaPrésentation Nano Server MS Afterwork Nouméa
Présentation Nano Server MS Afterwork Nouméa
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
 
Rails 3 au Djangocong
Rails 3 au DjangocongRails 3 au Djangocong
Rails 3 au Djangocong
 
Net Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a ServiceNet Worker 9 : une solution orientée Backup As a Service
Net Worker 9 : une solution orientée Backup As a Service
 
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6 Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6
Alphorm.com Formation Déployer Xen Desktop 7.6 ET XenApp 7.6
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?
 
MSCS : Windows Server 2016 Quoi de neuf pour votre datacenter
MSCS : Windows Server 2016 Quoi de neuf pour votre datacenterMSCS : Windows Server 2016 Quoi de neuf pour votre datacenter
MSCS : Windows Server 2016 Quoi de neuf pour votre datacenter
 
Alphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQLAlphorm.com Support de la Formation PHP MySQL
Alphorm.com Support de la Formation PHP MySQL
 
Serveurs core et virtualisation
Serveurs core et virtualisationServeurs core et virtualisation
Serveurs core et virtualisation
 
Introduction à Cloud Foundry et au PaaS
Introduction à Cloud Foundry et au PaaSIntroduction à Cloud Foundry et au PaaS
Introduction à Cloud Foundry et au PaaS
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)
 
isa serveur
isa serveurisa serveur
isa serveur
 
Cedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure DevopsCedric leblond migrer jenkins AWS vers Azure Devops
Cedric leblond migrer jenkins AWS vers Azure Devops
 

Plus de Antony Barroux

PARTAGE par RENATER avec Cloudwatt & Netixia
PARTAGE par RENATER avec Cloudwatt & NetixiaPARTAGE par RENATER avec Cloudwatt & Netixia
PARTAGE par RENATER avec Cloudwatt & NetixiaAntony Barroux
 
Netixia Zimbra Strategy
Netixia Zimbra StrategyNetixia Zimbra Strategy
Netixia Zimbra StrategyAntony Barroux
 
Netixia Zimbra Collaboration Roadmap
Netixia Zimbra Collaboration RoadmapNetixia Zimbra Collaboration Roadmap
Netixia Zimbra Collaboration RoadmapAntony Barroux
 
Vmware zimbra et_le_cloud
Vmware zimbra et_le_cloudVmware zimbra et_le_cloud
Vmware zimbra et_le_cloudAntony Barroux
 
Scality, Cloud Storage pour Zimbra
Scality, Cloud Storage pour ZimbraScality, Cloud Storage pour Zimbra
Scality, Cloud Storage pour ZimbraAntony Barroux
 
Forum Zimbra 2012 Messagerie probante
Forum Zimbra 2012 Messagerie probanteForum Zimbra 2012 Messagerie probante
Forum Zimbra 2012 Messagerie probanteAntony Barroux
 
Forum Zimbra 2012 introduction
Forum Zimbra 2012 introductionForum Zimbra 2012 introduction
Forum Zimbra 2012 introductionAntony Barroux
 

Plus de Antony Barroux (10)

PARTAGE par RENATER avec Cloudwatt & Netixia
PARTAGE par RENATER avec Cloudwatt & NetixiaPARTAGE par RENATER avec Cloudwatt & Netixia
PARTAGE par RENATER avec Cloudwatt & Netixia
 
Netixia Zimbra Strategy
Netixia Zimbra StrategyNetixia Zimbra Strategy
Netixia Zimbra Strategy
 
Netixia Zimbra Collaboration Roadmap
Netixia Zimbra Collaboration RoadmapNetixia Zimbra Collaboration Roadmap
Netixia Zimbra Collaboration Roadmap
 
Mx hero
Mx heroMx hero
Mx hero
 
Mobile forum
Mobile forumMobile forum
Mobile forum
 
Vmware zimbra et_le_cloud
Vmware zimbra et_le_cloudVmware zimbra et_le_cloud
Vmware zimbra et_le_cloud
 
Scality, Cloud Storage pour Zimbra
Scality, Cloud Storage pour ZimbraScality, Cloud Storage pour Zimbra
Scality, Cloud Storage pour Zimbra
 
Smtp et filtrage
Smtp et filtrageSmtp et filtrage
Smtp et filtrage
 
Forum Zimbra 2012 Messagerie probante
Forum Zimbra 2012 Messagerie probanteForum Zimbra 2012 Messagerie probante
Forum Zimbra 2012 Messagerie probante
 
Forum Zimbra 2012 introduction
Forum Zimbra 2012 introductionForum Zimbra 2012 introduction
Forum Zimbra 2012 introduction
 

Forum Zimbra 2012 Zimbra et la SSO

  • 1. Forum Zimbra 2012 MESSAGERIE & SSO
  • 2. Plan KERBEROS & SHIBBOLETH & Introduction CAS & Zimbra Cas Clients Zimbra Zimbra • Problématique • Principe • Principe • Définition • Inra • SSO • Mise en œuvre • Mise en œuvre • Principe • Univ. Tours • Avantage / • Avantage / • Etat des lieux • HCC Inconvénient Inconvénient • Mise en œuvre • InstitutTelecom 2
  • 3. Introduction • Problèmatique : Un SI existant sans gestion centralisée des logins et des mots de passe 1 à n applications ⇒ 1 application = 1 login + 1 mot de passe soit n application = 1 login + x mot de passe soit n application = y login + x mot de passe 3
  • 4. Introduction • Problèmatique: Comment trouver un équilibre entre sécurité et simplicité ? - Sécurité pour le SI - Simplicité pour la maintenance du SI - Simplicité pour l’utilisateur 4
  • 5. Introduction • SSO = Single Sign On Une authentification => Accès à 1 ou plusieurs ressources Mise en œuvre : - d’une configuration simple à la plus compliquée 5
  • 6. Zimbra & • CAS = Central Authentication Server • Plusieurs implémentations & langages : – Java (Consortium Jasig Open Source) – Ruby – Perl 6
  • 8. Zimbra & Mise en œuvre • Pré-requis – Disposer d’un référentiel utilisateurs + mots de passe (Active Directory, serveur OpenLDAP, serveur MySQL…) – Un serveur accueillant le service CAS – Un utilisateur ayant les droits de lecture sur le référentiel – Synchronisation avec un serveur de temps commun (NTP) 8
  • 9. Zimbra & Mise en œuvre • Installation – Exemple à partir de l’implémentation de JASIG – Un serveur d’application JEE (ex: Tomcat) – Déploiement de l’application (cas.war) • Paramétrage du serveur d’application : Le serveur doit fournir du https 9
  • 10. Zimbra & Mise en œuvre • Paramétrage du service CAS Configuration du service CAS pour le référentiel sélectionné : – AD – Serveur OpenLDAP – MySQL – Autres … Ajout des bibliothèques correspondantes aux modules 10
  • 11. Zimbra & Mise en œuvre • CASsification de Zimbra : – Importation du certificat CAS (SSL) – Installation des bibliothèques clientes CAS sur Zimbra – Modification du fichier zimbra.web.xml.in : redirection d’URL vers l’application CAS 11
  • 12. Zimbra & Mise en œuvre • CASsification de Zimbra – Génération de la clef de pré authentification du domaine de messagerie – Création du fichier preauth.jsp • Résultats : – Si l’utilisateur n’est pas encore connu : mire de login CAS – Si l’utilisateur est déjà connu via une application déjà CASsifiée : l’utilisateur arrive directement dans son compte Zimbra 12
  • 13. Zimbra & Avantage / Inconvénient • Mise en œuvre simple • La CASsification est • Possibilité de CASsifier uniquement au niveau du plusieurs domaines de web messagerie avec un seul • Pas possible de CASsifier la cluster Zimbra synchronisation mobile • Faire de Zimbra un point (SyncML) d’entrée unique pour les • Protocole IMAP non autres applications CASsifié CASifiées 13
  • 14. Zimbra & Kerberos Une association pour dépasser les limitations du Web • CAS + Référentiel utilisateurs : limité au web • CAS + module Kerberos/SPNEGO : une authentification unique de l’OS aux applications Web 14
  • 15. Zimbra & Kerberos Principe • 1 ère phase : l’utilisateur se connecte à sa session applicative de son OS => première et unique authentification • 2 ième phase : l’utilisateur lance son navigateur pour aller dans sa messagerie Zimbra => pas d’authentification AUTO LOGIN Une solution Simple dans la forme mais compliquée dans le fond 15
  • 16. Zimbra & Kerberos Mise en œuvre • Pré-requis – OS doit être kerbérisé – Un utilisateur ayant des droits administrateur sur l’AD – le serveur CAS doit être intégré au royaume Kerberos – Un compte utilisateur dédié pour la création de la keytab • Installation : – Reprise de l’ensemble des opérations d’un CAS classique – Ajout d’un module supplémentaire à CAS : SPNEGO Simple and Protected GSSAPI Negotiation Mechanism – Ajout des bibliothèques supplémentaires : – jcifs-1.2.15.jar – jcifs-ext-0.9.4.jar – Bibliothèques clientes Kerberos 16
  • 17. Zimbra & Kerberos Mise en œuvre • Paramétrage : – Fichier krb5.conf – fichier smb.conf – Net join –U <user-admin> -S <IP_AD> – Module SPNEGO : • pom.xml • cas.properties • login-webflow.xml • cas-servlet.xml • deployerConfigContext.xml • login.conf (à créer) – AD : création d’un keytab avec service principal – Migration du fichier keytab sur le server CAS 17
  • 18. Zimbra & Kerberos Mise en œuvre • Paramétrage IE : – outils -> avancé -> sécurité cocher Activer l'authentification Windows intégrée. – onglet général -> intranet local -> site -> avancé -> et ajouter l'adresse https://cas-server – Redémarrage IE • Paramétrage FireFox : – dans la barre d'adresse taper about:config – Modification de l’attribut network.automatic-ntlm-auth.trusted-uris : https://cas-server – Redémarrage Firefox 18
  • 19. Zimbra & Kerberos Mise en œuvre • CASsification de Zimbra (vu précédemment) 19
  • 20. Zimbra & Kerberos Une authentification forte au service de l’utilisateur • 1 mot de passe + 1 login = accès à tout • Basé sur des standards (RFC 4120, RFC 4537, RFC 5021, RFC 5896, RFC 6111, RFC 6112, RFC 6113 ) • 1 serveur CAS => auto login sur aplications CASsifiées • Très contraignant dans l’implémentation : – Nécessité d’avoir des accès administrateurs – Nécessité de modifier tous les postes clients – Sans AD nécessité d’installer un KDC – Maintenance 20
  • 21. Zimbra & Shibboleth Définition • La shibbolethisation permet d'utiliser un mécanisme de SSO afin d'accéder à des ressources dont les propriétaires ne gèrent pas les utilisateurs. • Implémentation SAMLv2 (Security Assertion Markup Language version 2), standard soutenu par OASIS. 21
  • 22. Zimbra & Shibboleth Principe : repose sur 2 briques + 1 optionnelle • IDP : Identity Provider. Correspond à un fournisseur d'identité (nom d'utilisateur et mot de passe). • SP : Service Provider. C'est lui qui présente le service shibbolitisé et fourni la ressource à l'utilisateur. • WAYF : Where Are You From ? Permet de sélectionner le fournisseur d'identité auquel appartient l'utilisateur. 22
  • 23. Zimbra & Shibboleth Zimbra et Shibboleth : état des lieux • Implémentation SAMLv2 dans Zimbra = incomplète • Classe Java existantes • Assertions SAML nécessaires au niveau de Zimbra = inconnues Un mariage impossible ? 23
  • 24. Zimbra & Shibboleth Mise en oeuvre • Déplacement de la problématique • Utilisation d’un reverse proxy Apache HTTP • Pré authentification déléguée => accès au compte de messagerie Zimbra 24
  • 25. Zimbra & Shibboleth Mise en oeuvre • Pré-requis : – Un serveur http dédié – Synchronisation (NTP) • Installation : apache http • Paramétrage Apache HTTP: – Activation mod_shib – Activation de l’interpréteur PHP (php-xml-util) – Activation SSL – vhost 25
  • 26. Zimbra & Shibboleth Mise en oeuvre • Installation du service shibboleth • Paramétrage du démon shibd – Génération clef privée + certificat – Récupération du certificat de la fédération d’identidé – shibboleth2.xml : • Hostname du SP • URL de l’IDP • URL du WAYF • Les attributs SAML à récupérer • URL des META DATA • Certificats … – attribute-map.xml 26
  • 27. Zimbra & Shibboleth Mise en oeuvre • Création de la pré authentification – Déporté au niveau du serveur proxy – Codée en PHP • Schéma du proxy 27
  • 28. Zimbra & Shibboleth • Possibilité de transmettre des attributs • Un SSO sur des ressources tierces • Beaucoup d’interaction entre les différents acteurs • Maîtrise des chaînes de certification • Technologie faiblement déployée 28
  • 30. Zimbra & SSO Conclusion • Portail d’accès unique • Différentes techniques : CAS, Kerberos, Shibboleth, … • Un mix des différentes techniques • Souplesse de Zimbra • Une communauté Open Source innovante et réactive 30
  • 31. Quelques exemples chez nos clients : • INRA : Yaziba.net – 10 000 collaborateurs – 93 sites distants sur toute la France – Inscription auto avec LDAP et CAS • Université de Tours : Zimbra sur site – 33 000 collaborateurs – Plusieurs sites sur Tours et ses environs – Intégration CAS 31
  • 32. Quelques exemples chez nos clients : • Hôpitaux Civils de Colmar : Zimbra sur site – 1 500 collaborateurs – CAS/Kerberos auto-login • Institut Télécom : Zimbra sur site – 8 000 collaborateurs – 3 sites répartis sur toute la France – Service Provider Shibboleth 32
  • 35. Ressources Web • http://www.jasig.org/cas • http://code.google.com/p/rubycas-server/ • http://lemonldap-ng.org/documentation/1.1/authcas • https://wiki.jasig.org/display/CAS/CASifying+Zimbra+6.0 • http://wefunction.com/2008/07/function-free-icon-set/ • http://shibboleth.internet2.edu/ 35
  • 36. Bibliographie • Single Sign-On open-source avec CAS (Central Authentication Service) : Pascal Aubry, Vincent Mathieu, Julien Marchal 36
  • 37. <!-- CAS filter configuration begin --> <filter> <filter-name>CasSingleSignOutFilter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> </filter> <filter-mapping> <filter-name>CasSingleSignOutFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener> <filter> <filter-name>CasAuthenticationFilter</filter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> <init-param> <param-name>casServerLoginUrl</param-name> <param-value>https://cas-server:8443/login</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://zimbra-server:80</param-value> </init-param> </filter> 37
  • 38. <filter-mapping> <filter-name>CasAuthenticationFilter</filter-name> <url-pattern>/public/preauth.jsp</url-pattern> </filter-mapping> <filter> <filter-name>CasValidationFilter</filter-name> <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class> <init-param> <param-name>casServerUrlPrefix</param-name> <param-value>https://cas-server:8443/</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://zimbra-server:80</param-value> </init-param> <init-param> <param-name>redirectAfterValidation</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CasValidationFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>CasHttpServletRequestWrapperFilter</filter-name> <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class> </filter> <filter-mapping> <filter-name>CasHttpServletRequestWrapperFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- CAS filter configuration end --> 38
  • 39. Krb5.conf [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] ticket_lifetime = 24000 default_realm = DOMAIN.TLD default_keytab_name = /var/lib/tomcat6/webapps/cas- server/spnegoaccount.keytab dns_lookup_realm = false dns_lookup_kdc = true default_tkt_enctypes = rc4-hmac des-cbc-md5 default_tgs_enctypes = rc4-hmac des-cbc-md5 [realms] DOMAIN.TLD = { kdc = srvad.domain.tld:88 admin_server = srvad.domain.tld:749 default_domain = domain.tld } [domain_realm] .domain.tld = DOMAIN.TLD domain.tld = DOMAIN.TLD 39
  • 40. • Net join –U <user-admin> -S <IP_AD> • ktpass.exe /out spnegocas.keytab /princ HTTP/cas- server@REALM /pass * /mapuser spnegocas@REALM /ptype krb5_nt_principal /crypto DES-CBC-MD5 40