LemonLDAP::NG, un WebSSO libre

download LemonLDAP::NG, un WebSSO libre

If you can't read please download the document

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

Twitter

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