LemonLDAP::NG, un WebSSO libre
-
Upload
clement-oudot -
Category
Technology
-
view
2.883 -
download
1
Transcript of LemonLDAP::NG, un WebSSO libre
LemonLDAP::NGUn WebSSO libre
Clment OUDOT
Consultant LINAGORA
LemonLDAP::NG
Questions du jour
Qui est ce confrencier devant moi?
Pourquoi faire du SSO ?
Qu'est-ce que le SSO?
Comment fonctionne LemonLDAP::NG?
Et les autres dans tout a: CAS, OpenID, Shibboleth, SAML, ...
Ai-je bien tout compris cette confrence ?
Bas les masquesLemonLDAP::NG
Clment OUDOT
Contributeur LemonLDAP::NG depuis 2007, Leader depuis 2011, en relai de Xavier GUIMARD
Leader du projet LDAP Tool Box
Actif dans les communauts OpenLDAP et LDAP Synchronization Connector
Membre de la cellule Identit / Scurit du Groupe LINAGORA depuis 2003
Collabore au produit LINAGORA LinID
LINAGORA : qui sommes nous
Nos principaux clients
Mission : Logiciels et services Open source pour russir les grands projets du libreFonde : Mai 2000Capital: Capital priv (principalement dtenu par les fondateurs)Nombre d'ingnieurs : 150
LINAGORA : nos mtiers
Pourquoi moi?LemonLDAP::NG
Mon application gre ses utilisateurs
Mon application possde sa propre base d'utilisateurs avec les mots de passe
Les utilisateurs s'authentifient chez moi
Mon application utilise une base centrale
Les utilisateurs existent dj dans une base, du coup je ne stocke pas les mots de passe
Par contre les utilisateurs doivent toujours m'envoyer leur mot de passe
La scurit n'est pas mon mtier
Qu'est-ce que la complexit d'un mot de passe?
Qu'est qu'une attaque par force brute?
Injection SQL, faille XSS?
Expiration d'un mot de passe, conservation d'un historique, formulaire de changement de mot de passe?
Comment changer mon mode d'authentification (biomtrie, carte puce, Kerberos, etc.)?
La gestion d'identit n'est pas mon mtier
Comment crer le compte d'un utilisateur existant dans un autre rfrentiel?
Comment savoir que les informations de l'utilisateur ont chang?
Comment savoir que l'utilisateur n'existe plus?
Qui doit avoir accs mon application, qui ne doit pas y accder?
Que faire quand l'utilisateur a perdu son mot de passe?
Le WebSSO?LemonLDAP::NG
Qu'est-ce que le WebSSO?
SSO signifie Single Sign On, qui peut se traduire en franais par authentification unique
Le WebSSO se consacre l'authentification unique pour les applications Web, c'est--dire des applications client-serveur dont le client est un navigateur Web (IE, Firefox, etc.)
Le principe de base est d'intercepter les requtes entre le client et le serveur, et indiquer au serveur que le client est bien authentifi
Architectures
Deux architectures complmentaires existent :WebSSO par dlgation
WebSSO par mandataire inverse
Dlgation
Mandataire inverse (reverse proxy)
LemonLDAP::NG se prsenteLemonLDAP::NG
Historique
LemonLDAP a t cr en 2003 par Eric GERMAN (Ministre des Finances, France) pour remplace Novell iChain (Novell llevon Lemon)
Comme Novell ou SiteMinder, LemonLDAP utilise des en-ttes HTTP pour propager l'identit de l'utilisateur
LemonLDAP::NG est une rcriture complte de LemonLDAP par Xavier GUIMARD (Gendarmerie Nationale, France) en 2005
Thomas CHEMINEAU et Clment OUDOT compltent l'quipe de dveloppement
Parlons technique
LemonLDAP::NG repose sur trois composants:Le portail (Portal): interface d'authentification, menu des applications, changement de mot de passe
Le handler (Handler): agent ralisant le contrle des accs aux applications Web
Le manager (Manager): interface de configuration, explorateur de sessions
Tous les composants sont crits en Perl
Ncessite Apache et mod_perl
Vue macroscopique
Cinmatique principale
Les phases d'authentification
LemonLDAP::NG dcoupe l'authentification en plusieurs phases:Vrification des sessions existantes
Rcupration des donnes d'authentification
Recherche de l'utilisateur
Authentification
Stockage des donnes dans la session
criture du cookie
Redirection (menu ou application demande)
Les diffrentes bases
Plusieurs bases sont utilises:Authentification: comment vrifier les donnes d'authentification
Utilisateurs: o trouver les donnes de l'utilisateur
Mots de passe: o changer le mot de passe de l'utilisateur
Exemple d'utilisation: authentification par Kerberos, donnes de l'utilisateur dans un annuaire LDAP
Mthodes d'authentification
LemonLDAP::NG supporte de nombreuses mthodes d'authentification:LDAP
Database
SSL X509
Apache built-in modules (Kerberos, OTP, ...)
SAML 2.0
OpenID
CAS
Rendre mon application compatible
LemonLDAP::NG est trs peu intrusif:Pas de module importer dans le code
Pas de WebService appeler
Simplement lire une en-tte HTTP!
Une application qui utilise l'authentification Apache (REMOTE_USER) est compatible!
Adaptations possibles de l'application:Auto-cration du compte local de l'utilisateur
Suppression du formulaire d'authentification
Et les autres?LemonLDAP::NG
CAS
Central Authentication Service
Documentation du protocole pour 1.0 et 2.0
Utilisation de tickets de service dans l'URL, avec validation par un lien dorsal
Possibilit de tickets proxy
Pas de partage d'attributs
Cinmatique CAS
OpenID
L'identifiant de l'utilisateur contient l'adresse du service d'authentification
Aussi bas sur les redirections HTTP
Permet le partage d'attributs (mais plusieurs normes possibles...)
Pas de notion de cercle de confiance
Cinmatique OpenID
SAML
Cercle de confiance: enregistrement pralable des fournisseurs de services et des fournisseurs d'identits
Plusieurs mthodes: GET / POST / Artefact GET / Artefact POST
Cinmatique SAML
LemonLDAP::NG et les autres
LemonLDAP::NG peut dlguer son authentification CAS, OpenID et SAML (avec rcupration d'attributs en OpenID et SAML)
LemonLDAP::NG peut fournir l'identit par CAS, OpenID et SAML (avec fourniture d'attributs pour OpenID et SAML)
LemonLDAP::NG peut agir comme un pont entre tous ces protocoles
Questions?LemonLDAP::NG
Merci de votre attentionLemonLDAP::NG
Column 1
20064
20078
200810.4
200911
201013