Zimbra et le SSO

L’authentification unique (en anglais Single Sign-On : SSO) est une méthode permettant à un utilisateur d’accéder à plusieurs applications informatiques (ou sites web sécurisés) en ne procédant qu’à une seule authentification.

Zimbra intègre par défaut trois types de protocoles SSO ( SAML V2, Kerberos et SPNEGO), de plus il est aussi possible avec quelques modifications d’intégrer le protocole CAS à Zimbra.

SAML V2

Security Assertion Markup Language (SAML) est un standard informatique définissant un protocole pour échanger des informations liées à la sécurité. Basé sur le langage XML, SAML a été développé par OASIS.

SAML propose l’authentification unique (en anglais Single Sign-On ou SSO) sur le web. De cette manière, un utilisateur peut naviguer sur plusieurs sites différents en ne s’authentifiant qu’une seule fois, sans pour autant que ces sites aient accès à des informations trop confidentielles.

Les solutions de SSO au sein d’un intranet abondent (en utilisant des cookies, par exemple), mais prolonger ces solutions au-delà d’un intranet est problématique, car cela peut entraîner la prolifération de technologies propriétaires dont chacunes n’a pas nécessairement la capacité d’interagir avec les autres.

SAML est un standard supporté par un grand nombre de solutions de SSO pour les problèmes de gestion d’identité.

SAML suppose que le commettant (souvent un utilisateur) se soit inscrit avec au moins un fournisseur d’identité. Ce fournisseur d’identité est censé fournir des services d’authentification locaux au commettant. Cependant, SAML n’indique pas l’implémentation de ces services locaux ; en effet, pour SAML peu importe comment les services locaux d’authentification sont mis en application (bien que les fournisseurs de service s’en soucient certainement).

L’authentification SAML V2 est directement intégrée à Zimbra en version Network et se configure très simplement.

Kerberos

Kerberos est un protocole d’authentification AAA issu du projet « Athena » du MIT (Massachusetts Institute of Technology).

Son nom « Kerberos » vient de la mythologie grecque et correspond au nom du chien à trois têtes gardien des portes d’Hadès. Il porte relativement bien son nom puisqu’il est chargé d’authentifier, d’autoriser et de surveiller les utilisateurs voulant accéder aux ressources et services de votre réseau. Il agit en chien de garde contre les intrus sur vos services réseau. Le protocole Kerberos a été normalisé dans sa version 5 par l’IETF dans les RFC 1510 (en septembre 1993) et RFC 1964 (juin 1996).

C’est un standard qui résout de nombreux problèmes de sécurité, d’administration, et de productivité dans l’authentification des clients et des services au sein d’un réseau. En effet, Kerberos introduit le principe de Single Sign-On (SSO)

Kerberos se base sur une tierce partie de confiance pour gérer l’authentification, le KDC (Key Distribution Center). Tous les utilisateurs et services du réseau font confiance à cette tierce partie. Pour réaliser la sécurité de l’authentification, Kerberos utilise un mécanisme de chiffrement basé sur des algorithmes à clef symétrique. Chaque sujet et service du réseau a une clé secrète partagée avec le KDC.

Kerberos permet de s’authentifier à l’aide de sa session Windows et est multi protocole, ce qui permet par exemple de s’authentifier sur Zimbra, non seulement à travers un navigateur mais aussi depuis un client lourd sur les protocoles SMTP ou IMAP par exemple.

SPNEGO

SPNEGO est une implantation Microsoft du protocole Kerberos mais ne s’appuie que sur un seul protocole. Il est le plus souvent utilisé à travers le protocole HTTP. C’est une des implantations la plus répandue pour un serveur Zimbra.

Client CAS

CAS est un système d’authentification unique : On s’authentifie sur un site Web, et on est alors authentifié sur tous les sites Web qui utilisent le même serveur CAS. Il évite de s’authentifier à chaque fois qu’on accède à une application en mettant en place un système de ticket.

CAS est essentiellement un protocole basé sur des requêtes HTTP pures. Certains messages sont cependant formatés en XML.

Ce protocole est basé sur une notion d’échange de tickets, un peu à la manière de Kerberos. Ces tickets sont des « opaque handles » : ils ne transportent aucune information.

A travers la mise en place d’une librairie et d’un fichier de pré-authentification, il est possible simplement d’implanter le protocole SSO CAS sur un serveur Zimbra.