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
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