0
Forum Zimbra 2012  MESSAGERIE & SSO
Plan                                      KERBEROS &       SHIBBOLETH &  Introduction      CAS & Zimbra                   ...
Introduction• Problèmatique :Un SI existant sans gestion centralisée des logins  et des mots de passe1 à n applications ⇒ ...
Introduction• Problèmatique:Comment trouver un équilibre entre sécurité et  simplicité ?- Sécurité pour le SI- Simplicité ...
Introduction• SSO = Single Sign OnUne authentification => Accès à 1 ou plusieurs   ressourcesMise en œuvre : - d’une confi...
Zimbra &• CAS = Central Authentication Server• Plusieurs implémentations & langages :   – Java (Consortium Jasig Open Sour...
Zimbra & Principe            7
Zimbra &                      Mise en œuvre• Pré-requis   – Disposer d’un référentiel utilisateurs + mots de passe   (Acti...
Zimbra &                     Mise en œuvre• Installation   – Exemple à partir de l’implémentation de JASIG   – Un serveur ...
Zimbra &                    Mise en œuvre• Paramétrage du service CAS  Configuration du service CAS pour le référentiel  s...
Zimbra &                     Mise en œuvre• CASsification de Zimbra :   – Importation du certificat CAS (SSL)   – Installa...
Zimbra &                      Mise en œuvre• CASsification de Zimbra   – Génération de la clef de pré authentification du ...
Zimbra &               Avantage / Inconvénient• Mise en œuvre simple       • La CASsification est• Possibilité de CASsifie...
Zimbra & KerberosUne association pour dépasser les       limitations du Web• CAS + Référentiel utilisateurs : limité au we...
Zimbra & Kerberos                            Principe• 1 ère phase : l’utilisateur se connecte à sa session applicative  d...
Zimbra & Kerberos                                 Mise en œuvre• Pré-requis    –   OS doit être kerbérisé    –   Un utilis...
Zimbra & Kerberos                               Mise en œuvre• Paramétrage :   –   Fichier krb5.conf   –   fichier smb.con...
Zimbra & Kerberos                            Mise en œuvre• Paramétrage IE :   – outils -> avancé -> sécurité cocher Activ...
Zimbra & Kerberos                      Mise en œuvre• CASsification de Zimbra (vu précédemment)                           ...
Zimbra & KerberosUne authentification forte au service de l’utilisateur   • 1 mot de passe + 1 login = accès à tout   • Ba...
Zimbra & Shibboleth                            Définition• La shibbolethisation permet dutiliser un mécanisme de  SSO afin...
Zimbra & ShibbolethPrincipe : repose sur 2 briques + 1 optionnelle• IDP : Identity Provider. Correspond à un fournisseur  ...
Zimbra & Shibboleth            Zimbra et Shibboleth : état des lieux• Implémentation SAMLv2 dans Zimbra = incomplète• Clas...
Zimbra & Shibboleth                      Mise en oeuvre• Déplacement de la problématique• Utilisation d’un reverse proxy A...
Zimbra & Shibboleth                               Mise en oeuvre• Pré-requis :   – Un serveur http dédié   – Synchronisati...
Zimbra & Shibboleth                                 Mise en oeuvre• Installation du service shibboleth• Paramétrage du dém...
Zimbra & Shibboleth                            Mise en oeuvre• Création de la pré authentification   – Déporté au niveau d...
Zimbra & Shibboleth•   Possibilité de transmettre des attributs•   Un SSO sur des ressources tierces•   Beaucoup d’interac...
Zimbra & Shibboleth &                        29
Zimbra & SSO                            Conclusion•   Portail d’accès unique•   Différentes techniques : CAS, Kerberos, Sh...
Quelques exemples chez nos clients :• INRA : Yaziba.net   – 10 000 collaborateurs   – 93 sites distants sur toute la Franc...
Quelques exemples chez nos clients :• Hôpitaux Civils de Colmar : Zimbra sur site   – 1 500 collaborateurs   – CAS/Kerbero...
Des questions ?                  33
Annexes
Ressources Web•   http://www.jasig.org/cas•   http://code.google.com/p/rubycas-server/•   http://lemonldap-ng.org/document...
Bibliographie• Single Sign-On open-source avec CAS (Central Authentication Service) :  Pascal Aubry, Vincent Mathieu, Juli...
<!-- CAS filter configuration begin -->   <filter>        <filter-name>CasSingleSignOutFilter</filter-name>        <filter...
<filter-mapping>      <filter-name>CasAuthenticationFilter</filter-name>      <url-pattern>/public/preauth.jsp</url-patter...
Krb5.conf[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmi...
• Net join –U <user-admin> -S <IP_AD>• ktpass.exe /out spnegocas.keytab /princ HTTP/cas-  server@REALM /pass * /mapuser sp...
Upcoming SlideShare
Loading in...5
×

Forum Zimbra 2012 Zimbra et la SSO

5,016

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,016
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
98
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Forum Zimbra 2012 Zimbra et la SSO"

  1. 1. Forum Zimbra 2012 MESSAGERIE & SSO
  2. 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. 3. Introduction• Problèmatique :Un SI existant sans gestion centralisée des logins et des mots de passe1 à n applications ⇒ 1 application = 1 login + 1 mot de passesoit n application = 1 login + x mot de passesoit n application = y login + x mot de passe 3
  4. 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. 5. Introduction• SSO = Single Sign OnUne authentification => Accès à 1 ou plusieurs ressourcesMise en œuvre : - d’une configuration simple à la plus compliquée 5
  6. 6. Zimbra &• CAS = Central Authentication Server• Plusieurs implémentations & langages : – Java (Consortium Jasig Open Source) – Ruby – Perl 6
  7. 7. Zimbra & Principe 7
  8. 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. 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. 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. 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. 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. 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. 14. Zimbra & KerberosUne 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. 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 LOGINUne solution Simple dans la forme mais compliquée dans le fond 15
  16. 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. 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. 18. Zimbra & Kerberos Mise en œuvre• Paramétrage IE : – outils -> avancé -> sécurité cocher Activer lauthentification Windows intégrée. – onglet général -> intranet local -> site -> avancé -> et ajouter ladresse https://cas-server – Redémarrage IE• Paramétrage FireFox : – dans la barre dadresse taper about:config – Modification de l’attribut network.automatic-ntlm-auth.trusted-uris : https://cas-server – Redémarrage Firefox 18
  19. 19. Zimbra & Kerberos Mise en œuvre• CASsification de Zimbra (vu précédemment) 19
  20. 20. Zimbra & KerberosUne 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. 21. Zimbra & Shibboleth Définition• La shibbolethisation permet dutiliser un mécanisme de SSO afin daccé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. 22. Zimbra & ShibbolethPrincipe : repose sur 2 briques + 1 optionnelle• IDP : Identity Provider. Correspond à un fournisseur didentité (nom dutilisateur et mot de passe).• SP : Service Provider. Cest lui qui présente le service shibbolitisé et fourni la ressource à lutilisateur.• WAYF : Where Are You From ? Permet de sélectionner le fournisseur didentité auquel appartient lutilisateur. 22
  23. 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. 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. 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. 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. 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. 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
  29. 29. Zimbra & Shibboleth & 29
  30. 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. 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. 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
  33. 33. Des questions ? 33
  34. 34. Annexes
  35. 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. 36. Bibliographie• Single Sign-On open-source avec CAS (Central Authentication Service) : Pascal Aubry, Vincent Mathieu, Julien Marchal 36
  37. 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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×