SlideShare une entreprise Scribd logo
LemonLDAP::NG


LemonLDAP::NG
Un WebSSO libre

 Clément OUDOT

LemonLDAP::NG leader
 Consultant LINAGORA
Questions du jour

●   Qui est ce conférencier 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 conférence ?


                                                          10/03/11
    2                                       http://lemonldap-ng.org
LemonLDAP::NG




    Bas les masques




                                    10/03/11
3                     http://lemonldap-ng.org
Clément OUDOT

●   Contributeur LemonLDAP::NG depuis 2007,
    Leader depuis 2011, en relai de Xavier
    GUIMARD
●   Leader du projet LDAP Tool Box
●   Actif dans les communautés OpenLDAP et
    LDAP Synchronization Connector
●   Membre de la cellule Identité / Sécurité du
    Groupe LINAGORA depuis 2003
●   Collabore au produit LINAGORA LinID
                                                          10/03/11
    4                                       http://lemonldap-ng.org
LemonLDAP::NG




    Pourquoi moi ?




                                    10/03/11
5                     http://lemonldap-ng.org
Mon application gère ses utilisateurs

●   Mon application possède sa propre base
    d'utilisateurs avec les mots de passe
●   Les utilisateurs s'authentifient chez moi




                                                              10/03/11
    6                                           http://lemonldap-ng.org
Mon application utilise une base centrale

●   Les utilisateurs existent déjà 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




                                                           10/03/11
    7                                        http://lemonldap-ng.org
La sécurité n'est pas mon métier

●   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
    (biométrie, carte à puce, Kerberos, etc.) ?
                                                            10/03/11
    8                                         http://lemonldap-ng.org
La gestion d'identité n'est pas mon métier

●   Comment créer le compte d'un utilisateur
    existant dans un autre référentiel ?
●   Comment savoir que les informations de
    l'utilisateur ont changé ?
●   Comment savoir que l'utilisateur n'existe plus ?
●   Qui doit avoir accès à mon application, qui ne
    doit pas y accéder ?
●   Que faire quand l'utilisateur a perdu son mot de
    passe ?
                                                          10/03/11
    9                                       http://lemonldap-ng.org
LemonLDAP::NG




     Le WebSSO ?




                                   10/03/11
10                   http://lemonldap-ng.org
Qu'est-ce que le WebSSO ?

●   SSO signifie « Single Sign On », qui peut se
    traduire en français 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
    requêtes entre le client et le serveur, et indiquer
    au serveur que le client est bien authentifié
                                                            10/03/11
    11                                        http://lemonldap-ng.org
Architectures

●   Deux architectures complémentaires existent :
    ●    WebSSO par délégation
    ●    WebSSO par mandataire inverse




                                                            10/03/11
    12                                        http://lemonldap-ng.org
Délégation




                     10/03/11
13     http://lemonldap-ng.org
Mandataire inverse (reverse proxy)




                                             10/03/11
14                             http://lemonldap-ng.org
LemonLDAP::NG




     LemonLDAP::NG
       se présente




                                    10/03/11
15                    http://lemonldap-ng.org
Historique

●   LemonLDAP a été créé en 2003 par Eric GERMAN
    (Ministère des Finances, France) pour remplace Novell
    iChain (Novell → llevon → Lemon)
●   Comme Novell ou SiteMinder, LemonLDAP utilise des en-
    têtes HTTP pour propager l'identité de l'utilisateur
●   LemonLDAP::NG est une réécriture complète de
    LemonLDAP par Xavier GUIMARD (Gendarmerie
    Nationale, France) en 2005
●   Thomas CHEMINEAU et Clément OUDOT complètent
    l'équipe de développement


                                                                10/03/11
    16                                            http://lemonldap-ng.org
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 réalisant le contrôle
         des accès aux applications Web
    ●    Le manager (Manager) : interface de configuration,
         explorateur de sessions
●   Tous les composants sont écrits en Perl
●   Nécessite Apache et mod_perl
                                                                     10/03/11
    17                                                 http://lemonldap-ng.org
Vue macroscopique




                             10/03/11
18             http://lemonldap-ng.org
Cinématique principale




                                 10/03/11
19                 http://lemonldap-ng.org
Les phases d'authentification

●   LemonLDAP::NG découpe l'authentification en
    plusieurs phases :
    ●    Vérification des sessions existantes
    ●    Récupération des données d'authentification
    ●    Recherche de l'utilisateur
    ●    Authentification
    ●    Stockage des données dans la session
    ●    Écriture du cookie
    ●    Redirection (menu ou application demandée)
                                                                10/03/11
    20                                            http://lemonldap-ng.org
Les différentes bases

●   Plusieurs « bases » sont utilisées :
    ●    Authentification : comment vérifier les données
         d'authentification
    ●    Utilisateurs : où trouver les données de l'utilisateur
    ●    Mots de passe : où changer le mot de passe de
         l'utilisateur
●   Exemple d'utilisation : authentification par
    Kerberos, données de l'utilisateur dans un
    annuaire LDAP

                                                                      10/03/11
    21                                                  http://lemonldap-ng.org
Méthodes d'authentification

●   LemonLDAP::NG supporte de nombreuses méthodes
    d'authentification :
    ●    LDAP
    ●    Database
    ●    SSL X509
    ●    Apache built-in modules (Kerberos, OTP, ...)
    ●    SAML 2.0
    ●    OpenID
    ●    Twitter
    ●    CAS
●


                                                                      10/03/11
    22                                                  http://lemonldap-ng.org
Rendre mon application compatible

●   LemonLDAP::NG est très peu intrusif :
    ●    Pas de module à importer dans le code
    ●    Pas de WebService à appeler
    ●    Simplement lire une en-tête HTTP !
●   Une application qui utilise l'authentification
    Apache (REMOTE_USER) est compatible !
●   Adaptations possibles de l'application :
    ●    Auto-création du compte local de l'utilisateur
    ●    Suppression du formulaire d'authentification
                                                                   10/03/11
    23                                               http://lemonldap-ng.org
LemonLDAP::NG




     Et les autres ?




                                      10/03/11
24                      http://lemonldap-ng.org
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



                                                           10/03/11
    25                                       http://lemonldap-ng.org
Cinématique CAS




                           10/03/11
26           http://lemonldap-ng.org
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




                                                              10/03/11
    27                                          http://lemonldap-ng.org
Cinématique OpenID




                              10/03/11
28              http://lemonldap-ng.org
SAML

●   Cercle de confiance : enregistrement préalable
    des fournisseurs de services et des
    fournisseurs d'identités
●   Plusieurs méthodes : GET / POST / Artefact
    GET / Artefact POST




                                                         10/03/11
    29                                     http://lemonldap-ng.org
Cinématique SAML




                            10/03/11
30            http://lemonldap-ng.org
LemonLDAP::NG et les autres

●   LemonLDAP::NG peut déléguer son
    authentification à CAS, OpenID et SAML (avec
    récupération 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


                                                        10/03/11
    31                                    http://lemonldap-ng.org
LemonLDAP::NG




     Questions ?




                                    10/03/11
32                    http://lemonldap-ng.org
LemonLDAP::NG




     Merci de votre attention




                                              10/03/11
33                              http://lemonldap-ng.org

Contenu connexe

Tendances

Idm 28-administrator
Idm 28-administratorIdm 28-administrator
Idm 28-administrator
inf_med13
 
ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemplesASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
Cyber Security Alliance
 
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NGS2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
Clément OUDOT
 
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NGSAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
Clément OUDOT
 
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Philippe Beraud
 
Oauth2 & OpenID Connect
Oauth2 & OpenID ConnectOauth2 & OpenID Connect
Oauth2 & OpenID Connect
Pascal Flamand
 
[Identity Days 2020] Politique des mots de passe des annuaires LDAP et outils...
[Identity Days 2020] Politique des mots de passe des annuaires LDAP et outils...[Identity Days 2020] Politique des mots de passe des annuaires LDAP et outils...
[Identity Days 2020] Politique des mots de passe des annuaires LDAP et outils...
Worteks
 
[Campus du Libre 2020] Présentation de la solution W'Sweet
[Campus du Libre 2020] Présentation de la solution W'Sweet[Campus du Libre 2020] Présentation de la solution W'Sweet
[Campus du Libre 2020] Présentation de la solution W'Sweet
Worteks
 
[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnect[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnect
Clément OUDOT
 
Présentation Oauth OpenID
Présentation Oauth OpenIDPrésentation Oauth OpenID
Présentation Oauth OpenID
Pascal Flamand
 
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
Worteks
 
Présentation de LemonLDAP::NG aux Journées Perl 2016
Présentation de LemonLDAP::NG aux Journées Perl 2016Présentation de LemonLDAP::NG aux Journées Perl 2016
Présentation de LemonLDAP::NG aux Journées Perl 2016
Clément OUDOT
 
Sécuriser ses ap is avec oauth2 jug montpellier 16 avril 2014
Sécuriser ses ap is avec oauth2   jug montpellier 16 avril 2014Sécuriser ses ap is avec oauth2   jug montpellier 16 avril 2014
Sécuriser ses ap is avec oauth2 jug montpellier 16 avril 2014
Damien Boissin
 
Delegation d'authentification
Delegation d'authentificationDelegation d'authentification
Delegation d'authentification
Sébastien Brault
 
[Identity Days 2021] W'IDaaS - Identity as a Service
[Identity Days 2021] W'IDaaS - Identity as a Service[Identity Days 2021] W'IDaaS - Identity as a Service
[Identity Days 2021] W'IDaaS - Identity as a Service
Worteks
 
[Identity Days 2021] Quel avenir pour OpenLDAP ?
[Identity Days 2021] Quel avenir pour OpenLDAP ?[Identity Days 2021] Quel avenir pour OpenLDAP ?
[Identity Days 2021] Quel avenir pour OpenLDAP ?
Worteks
 
Paris Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId ConnectParis Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId Connect
François Petitit
 
Comment automatiser les commandes PowerShell pour optimiser la performance d'...
Comment automatiser les commandes PowerShell pour optimiser la performance d'...Comment automatiser les commandes PowerShell pour optimiser la performance d'...
Comment automatiser les commandes PowerShell pour optimiser la performance d'...
Microsoft Décideurs IT
 
Open source tools for e signature - yajug - v3
Open source tools for e signature - yajug - v3Open source tools for e signature - yajug - v3
Open source tools for e signature - yajug - v3
David Naramski
 

Tendances (20)

Idm 28-administrator
Idm 28-administratorIdm 28-administrator
Idm 28-administrator
 
ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemplesASFWS 2011 : CAS, OpenID, SAML  concepts, différences et exemples
ASFWS 2011 : CAS, OpenID, SAML concepts, différences et exemples
 
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NGS2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
 
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NGSAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG
 
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
 
Oauth2 & OpenID Connect
Oauth2 & OpenID ConnectOauth2 & OpenID Connect
Oauth2 & OpenID Connect
 
[Identity Days 2020] Politique des mots de passe des annuaires LDAP et outils...
[Identity Days 2020] Politique des mots de passe des annuaires LDAP et outils...[Identity Days 2020] Politique des mots de passe des annuaires LDAP et outils...
[Identity Days 2020] Politique des mots de passe des annuaires LDAP et outils...
 
[Campus du Libre 2020] Présentation de la solution W'Sweet
[Campus du Libre 2020] Présentation de la solution W'Sweet[Campus du Libre 2020] Présentation de la solution W'Sweet
[Campus du Libre 2020] Présentation de la solution W'Sweet
 
[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnect[JDLL 2016] OpenID Connect et FranceConnect
[JDLL 2016] OpenID Connect et FranceConnect
 
Présentation Oauth OpenID
Présentation Oauth OpenIDPrésentation Oauth OpenID
Présentation Oauth OpenID
 
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
[Open Source Experience 2021] Une infrastructure Cloud et une solution IDaaS ...
 
Présentation de LemonLDAP::NG aux Journées Perl 2016
Présentation de LemonLDAP::NG aux Journées Perl 2016Présentation de LemonLDAP::NG aux Journées Perl 2016
Présentation de LemonLDAP::NG aux Journées Perl 2016
 
Sécuriser ses ap is avec oauth2 jug montpellier 16 avril 2014
Sécuriser ses ap is avec oauth2   jug montpellier 16 avril 2014Sécuriser ses ap is avec oauth2   jug montpellier 16 avril 2014
Sécuriser ses ap is avec oauth2 jug montpellier 16 avril 2014
 
Delegation d'authentification
Delegation d'authentificationDelegation d'authentification
Delegation d'authentification
 
[Identity Days 2021] W'IDaaS - Identity as a Service
[Identity Days 2021] W'IDaaS - Identity as a Service[Identity Days 2021] W'IDaaS - Identity as a Service
[Identity Days 2021] W'IDaaS - Identity as a Service
 
[Identity Days 2021] Quel avenir pour OpenLDAP ?
[Identity Days 2021] Quel avenir pour OpenLDAP ?[Identity Days 2021] Quel avenir pour OpenLDAP ?
[Identity Days 2021] Quel avenir pour OpenLDAP ?
 
Paris Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId ConnectParis Web 2015 - France Connect et OpenId Connect
Paris Web 2015 - France Connect et OpenId Connect
 
Comment automatiser les commandes PowerShell pour optimiser la performance d'...
Comment automatiser les commandes PowerShell pour optimiser la performance d'...Comment automatiser les commandes PowerShell pour optimiser la performance d'...
Comment automatiser les commandes PowerShell pour optimiser la performance d'...
 
OpenDS - Open Source Java LDAP server
OpenDS - Open Source Java LDAP serverOpenDS - Open Source Java LDAP server
OpenDS - Open Source Java LDAP server
 
Open source tools for e signature - yajug - v3
Open source tools for e signature - yajug - v3Open source tools for e signature - yajug - v3
Open source tools for e signature - yajug - v3
 

En vedette

Zend framework service
Zend framework serviceZend framework service
Zend framework service
Michelangelo van Dam
 
2012 Confoo: Defining User Identity
2012 Confoo: Defining User Identity2012 Confoo: Defining User Identity
2012 Confoo: Defining User Identity
Jonathan LeBlanc
 
In The Shadow Of The Ninja
In The Shadow Of The NinjaIn The Shadow Of The Ninja
In The Shadow Of The Ninja
zburnham
 
Dealing with Continuous Data Processing, ConFoo 2012
Dealing with Continuous Data Processing, ConFoo 2012Dealing with Continuous Data Processing, ConFoo 2012
Dealing with Continuous Data Processing, ConFoo 2012
Michael Peacock
 
Paraccel/Database Architechs Press Release
Paraccel/Database Architechs Press ReleaseParaccel/Database Architechs Press Release
Paraccel/Database Architechs Press Release
Database Architechs
 
HTML5 et JS accessible mission impossible
HTML5 et JS accessible mission impossibleHTML5 et JS accessible mission impossible
HTML5 et JS accessible mission impossible
levy aurélien
 

En vedette (6)

Zend framework service
Zend framework serviceZend framework service
Zend framework service
 
2012 Confoo: Defining User Identity
2012 Confoo: Defining User Identity2012 Confoo: Defining User Identity
2012 Confoo: Defining User Identity
 
In The Shadow Of The Ninja
In The Shadow Of The NinjaIn The Shadow Of The Ninja
In The Shadow Of The Ninja
 
Dealing with Continuous Data Processing, ConFoo 2012
Dealing with Continuous Data Processing, ConFoo 2012Dealing with Continuous Data Processing, ConFoo 2012
Dealing with Continuous Data Processing, ConFoo 2012
 
Paraccel/Database Architechs Press Release
Paraccel/Database Architechs Press ReleaseParaccel/Database Architechs Press Release
Paraccel/Database Architechs Press Release
 
HTML5 et JS accessible mission impossible
HTML5 et JS accessible mission impossibleHTML5 et JS accessible mission impossible
HTML5 et JS accessible mission impossible
 

Similaire à LemonLDAP::NG, un WebSSO libre (ConFoo 2011)

LemonLDAP::NG 1.2
LemonLDAP::NG 1.2LemonLDAP::NG 1.2
LemonLDAP::NG 1.2
Clément OUDOT
 
Séminaire septembre 2010 - LinID et LinPKI, Les solutions Open Source d'ident...
Séminaire septembre 2010 - LinID et LinPKI, Les solutions Open Source d'ident...Séminaire septembre 2010 - LinID et LinPKI, Les solutions Open Source d'ident...
Séminaire septembre 2010 - LinID et LinPKI, Les solutions Open Source d'ident...LINAGORA
 
RMLL 2009 - Présentation du WebSSO LemonLDAP::NG
RMLL 2009 - Présentation du WebSSO LemonLDAP::NGRMLL 2009 - Présentation du WebSSO LemonLDAP::NG
RMLL 2009 - Présentation du WebSSO LemonLDAP::NGClément OUDOT
 
Séminaire LinID LINAGORA - juin 2009
Séminaire LinID LINAGORA - juin 2009Séminaire LinID LINAGORA - juin 2009
Séminaire LinID LINAGORA - juin 2009
LINAGORA
 
Présentation offre LINID
Présentation offre LINIDPrésentation offre LINID
Présentation offre LINIDLINAGORA
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascript
jp_mouton
 
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
Clément OUDOT
 
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
Worteks
 
[Université Lyon 1] Exemples de logiciels libres : LemonLDAP::NG et W'Sweet
[Université Lyon 1] Exemples de logiciels libres : LemonLDAP::NG et W'Sweet[Université Lyon 1] Exemples de logiciels libres : LemonLDAP::NG et W'Sweet
[Université Lyon 1] Exemples de logiciels libres : LemonLDAP::NG et W'Sweet
Worteks
 
WebSSO, synchronisation et contrôle des accès via LDAP
WebSSO, synchronisation et contrôle des accès via LDAPWebSSO, synchronisation et contrôle des accès via LDAP
WebSSO, synchronisation et contrôle des accès via LDAP
LINAGORA
 
Techniques d'accélération des pages web
Techniques d'accélération des pages webTechniques d'accélération des pages web
Techniques d'accélération des pages web
Jean-Pierre Vincent
 
Presentation fusion directory-campus-condorcet-fr
Presentation fusion directory-campus-condorcet-frPresentation fusion directory-campus-condorcet-fr
Presentation fusion directory-campus-condorcet-fr
Benoit Mortier
 
FusionDirectory sur le campus Condorcet : donner l’accès aux services et perm...
FusionDirectory sur le campus Condorcet : donner l’accès aux services et perm...FusionDirectory sur le campus Condorcet : donner l’accès aux services et perm...
FusionDirectory sur le campus Condorcet : donner l’accès aux services et perm...
Identity Days
 
LemonLDAP::NG, un WebSSO libre‎ en Perl !
LemonLDAP::NG, un WebSSO libre‎ en Perl !LemonLDAP::NG, un WebSSO libre‎ en Perl !
LemonLDAP::NG, un WebSSO libre‎ en Perl !Clément OUDOT
 
Séminaire LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011Séminaire LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011
LINAGORA
 
Les performances Web mobile
Les performances Web mobileLes performances Web mobile
Les performances Web mobile
Jean-Pierre Vincent
 
[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoring[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoring
Camptocamp
 
Les Web APIs en .NET Core
Les Web APIs en .NET CoreLes Web APIs en .NET Core
Les Web APIs en .NET Core
François Camus
 
[RMLL2017] Des logiciels libres pour la gestion des identités !
[RMLL2017] Des logiciels libres pour la gestion des identités ![RMLL2017] Des logiciels libres pour la gestion des identités !
[RMLL2017] Des logiciels libres pour la gestion des identités !
Clément OUDOT
 

Similaire à LemonLDAP::NG, un WebSSO libre (ConFoo 2011) (20)

LemonLDAP::NG 1.2
LemonLDAP::NG 1.2LemonLDAP::NG 1.2
LemonLDAP::NG 1.2
 
LemonLDAP::NG 1.2
LemonLDAP::NG 1.2LemonLDAP::NG 1.2
LemonLDAP::NG 1.2
 
Séminaire septembre 2010 - LinID et LinPKI, Les solutions Open Source d'ident...
Séminaire septembre 2010 - LinID et LinPKI, Les solutions Open Source d'ident...Séminaire septembre 2010 - LinID et LinPKI, Les solutions Open Source d'ident...
Séminaire septembre 2010 - LinID et LinPKI, Les solutions Open Source d'ident...
 
RMLL 2009 - Présentation du WebSSO LemonLDAP::NG
RMLL 2009 - Présentation du WebSSO LemonLDAP::NGRMLL 2009 - Présentation du WebSSO LemonLDAP::NG
RMLL 2009 - Présentation du WebSSO LemonLDAP::NG
 
Séminaire LinID LINAGORA - juin 2009
Séminaire LinID LINAGORA - juin 2009Séminaire LinID LINAGORA - juin 2009
Séminaire LinID LINAGORA - juin 2009
 
Présentation offre LINID
Présentation offre LINIDPrésentation offre LINID
Présentation offre LINID
 
Panel de solutions javascript
Panel de solutions javascriptPanel de solutions javascript
Panel de solutions javascript
 
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
 
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
 
[Université Lyon 1] Exemples de logiciels libres : LemonLDAP::NG et W'Sweet
[Université Lyon 1] Exemples de logiciels libres : LemonLDAP::NG et W'Sweet[Université Lyon 1] Exemples de logiciels libres : LemonLDAP::NG et W'Sweet
[Université Lyon 1] Exemples de logiciels libres : LemonLDAP::NG et W'Sweet
 
WebSSO, synchronisation et contrôle des accès via LDAP
WebSSO, synchronisation et contrôle des accès via LDAPWebSSO, synchronisation et contrôle des accès via LDAP
WebSSO, synchronisation et contrôle des accès via LDAP
 
Techniques d'accélération des pages web
Techniques d'accélération des pages webTechniques d'accélération des pages web
Techniques d'accélération des pages web
 
Presentation fusion directory-campus-condorcet-fr
Presentation fusion directory-campus-condorcet-frPresentation fusion directory-campus-condorcet-fr
Presentation fusion directory-campus-condorcet-fr
 
FusionDirectory sur le campus Condorcet : donner l’accès aux services et perm...
FusionDirectory sur le campus Condorcet : donner l’accès aux services et perm...FusionDirectory sur le campus Condorcet : donner l’accès aux services et perm...
FusionDirectory sur le campus Condorcet : donner l’accès aux services et perm...
 
LemonLDAP::NG, un WebSSO libre‎ en Perl !
LemonLDAP::NG, un WebSSO libre‎ en Perl !LemonLDAP::NG, un WebSSO libre‎ en Perl !
LemonLDAP::NG, un WebSSO libre‎ en Perl !
 
Séminaire LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011Séminaire LinID/LinPKI septembre 2011
Séminaire LinID/LinPKI septembre 2011
 
Les performances Web mobile
Les performances Web mobileLes performances Web mobile
Les performances Web mobile
 
[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoring[Geocom2017] Georchestra & monitoring
[Geocom2017] Georchestra & monitoring
 
Les Web APIs en .NET Core
Les Web APIs en .NET CoreLes Web APIs en .NET Core
Les Web APIs en .NET Core
 
[RMLL2017] Des logiciels libres pour la gestion des identités !
[RMLL2017] Des logiciels libres pour la gestion des identités ![RMLL2017] Des logiciels libres pour la gestion des identités !
[RMLL2017] Des logiciels libres pour la gestion des identités !
 

Plus de Clément OUDOT

[FOSDEM 2019] LemonLDAP::NG 2.0
[FOSDEM 2019] LemonLDAP::NG 2.0[FOSDEM 2019] LemonLDAP::NG 2.0
[FOSDEM 2019] LemonLDAP::NG 2.0
Clément OUDOT
 
[OW2Con 2018] The FusionIAM project
[OW2Con 2018] The FusionIAM project[OW2Con 2018] The FusionIAM project
[OW2Con 2018] The FusionIAM project
Clément OUDOT
 
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
Clément OUDOT
 
[OSSPARIS17] Le guide du connard du logiciel libre
[OSSPARIS17] Le guide du connard du logiciel libre[OSSPARIS17] Le guide du connard du logiciel libre
[OSSPARIS17] Le guide du connard du logiciel libre
Clément OUDOT
 
[OSSPARIS17] Des logiciels libres pour la gestion des identités !
[OSSPARIS17] Des logiciels libres pour la gestion des identités ![OSSPARIS17] Des logiciels libres pour la gestion des identités !
[OSSPARIS17] Des logiciels libres pour la gestion des identités !
Clément OUDOT
 
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
Clément OUDOT
 
[RMLL2017] le guide du connard du logiciel libre
[RMLL2017] le guide du connard du logiciel libre[RMLL2017] le guide du connard du logiciel libre
[RMLL2017] le guide du connard du logiciel libre
Clément OUDOT
 
[RMLL2017] LDAPCon 2017
[RMLL2017] LDAPCon 2017[RMLL2017] LDAPCon 2017
[RMLL2017] LDAPCon 2017
Clément OUDOT
 
[OW2Con 2017] News from LemonLDAP::NG
[OW2Con 2017] News from LemonLDAP::NG[OW2Con 2017] News from LemonLDAP::NG
[OW2Con 2017] News from LemonLDAP::NG
Clément OUDOT
 
[JDLL 2017] Le Guide du Connard du Logiciel Libre
[JDLL 2017] Le Guide du Connard du Logiciel Libre[JDLL 2017] Le Guide du Connard du Logiciel Libre
[JDLL 2017] Le Guide du Connard du Logiciel Libre
Clément OUDOT
 
KR2016 The Free Software Bastard Guide
KR2016 The Free Software Bastard GuideKR2016 The Free Software Bastard Guide
KR2016 The Free Software Bastard Guide
Clément OUDOT
 
The guide of Security Jerk
The guide of Security JerkThe guide of Security Jerk
The guide of Security Jerk
Clément OUDOT
 
The wonderful story of Web Authentication and Single-Sign On
The wonderful story of Web Authentication and Single-Sign OnThe wonderful story of Web Authentication and Single-Sign On
The wonderful story of Web Authentication and Single-Sign On
Clément OUDOT
 
[OSSParis 2015] The OpenID Connect Protocol
[OSSParis 2015] The OpenID Connect Protocol[OSSParis 2015] The OpenID Connect Protocol
[OSSParis 2015] The OpenID Connect Protocol
Clément OUDOT
 
[OW2Con 2015] LemonLDAP::NG 2.0 overview
[OW2Con 2015] LemonLDAP::NG 2.0 overview[OW2Con 2015] LemonLDAP::NG 2.0 overview
[OW2Con 2015] LemonLDAP::NG 2.0 overview
Clément OUDOT
 
[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect Protocol[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect Protocol
Clément OUDOT
 
Analyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELKAnalyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELK
Clément OUDOT
 
Le Guide du Connard du Logiciel Libre
Le Guide du Connard du Logiciel LibreLe Guide du Connard du Logiciel Libre
Le Guide du Connard du Logiciel Libre
Clément OUDOT
 
The OpenID Connect Protocol
The OpenID Connect ProtocolThe OpenID Connect Protocol
The OpenID Connect Protocol
Clément OUDOT
 
RMLL 2014 - LDAP Synchronization Connector
RMLL 2014 - LDAP Synchronization ConnectorRMLL 2014 - LDAP Synchronization Connector
RMLL 2014 - LDAP Synchronization Connector
Clément OUDOT
 

Plus de Clément OUDOT (20)

[FOSDEM 2019] LemonLDAP::NG 2.0
[FOSDEM 2019] LemonLDAP::NG 2.0[FOSDEM 2019] LemonLDAP::NG 2.0
[FOSDEM 2019] LemonLDAP::NG 2.0
 
[OW2Con 2018] The FusionIAM project
[OW2Con 2018] The FusionIAM project[OW2Con 2018] The FusionIAM project
[OW2Con 2018] The FusionIAM project
 
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
 
[OSSPARIS17] Le guide du connard du logiciel libre
[OSSPARIS17] Le guide du connard du logiciel libre[OSSPARIS17] Le guide du connard du logiciel libre
[OSSPARIS17] Le guide du connard du logiciel libre
 
[OSSPARIS17] Des logiciels libres pour la gestion des identités !
[OSSPARIS17] Des logiciels libres pour la gestion des identités ![OSSPARIS17] Des logiciels libres pour la gestion des identités !
[OSSPARIS17] Des logiciels libres pour la gestion des identités !
 
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
 
[RMLL2017] le guide du connard du logiciel libre
[RMLL2017] le guide du connard du logiciel libre[RMLL2017] le guide du connard du logiciel libre
[RMLL2017] le guide du connard du logiciel libre
 
[RMLL2017] LDAPCon 2017
[RMLL2017] LDAPCon 2017[RMLL2017] LDAPCon 2017
[RMLL2017] LDAPCon 2017
 
[OW2Con 2017] News from LemonLDAP::NG
[OW2Con 2017] News from LemonLDAP::NG[OW2Con 2017] News from LemonLDAP::NG
[OW2Con 2017] News from LemonLDAP::NG
 
[JDLL 2017] Le Guide du Connard du Logiciel Libre
[JDLL 2017] Le Guide du Connard du Logiciel Libre[JDLL 2017] Le Guide du Connard du Logiciel Libre
[JDLL 2017] Le Guide du Connard du Logiciel Libre
 
KR2016 The Free Software Bastard Guide
KR2016 The Free Software Bastard GuideKR2016 The Free Software Bastard Guide
KR2016 The Free Software Bastard Guide
 
The guide of Security Jerk
The guide of Security JerkThe guide of Security Jerk
The guide of Security Jerk
 
The wonderful story of Web Authentication and Single-Sign On
The wonderful story of Web Authentication and Single-Sign OnThe wonderful story of Web Authentication and Single-Sign On
The wonderful story of Web Authentication and Single-Sign On
 
[OSSParis 2015] The OpenID Connect Protocol
[OSSParis 2015] The OpenID Connect Protocol[OSSParis 2015] The OpenID Connect Protocol
[OSSParis 2015] The OpenID Connect Protocol
 
[OW2Con 2015] LemonLDAP::NG 2.0 overview
[OW2Con 2015] LemonLDAP::NG 2.0 overview[OW2Con 2015] LemonLDAP::NG 2.0 overview
[OW2Con 2015] LemonLDAP::NG 2.0 overview
 
[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect Protocol[LDAPCon 2015] The OpenID Connect Protocol
[LDAPCon 2015] The OpenID Connect Protocol
 
Analyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELKAnalyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELK
 
Le Guide du Connard du Logiciel Libre
Le Guide du Connard du Logiciel LibreLe Guide du Connard du Logiciel Libre
Le Guide du Connard du Logiciel Libre
 
The OpenID Connect Protocol
The OpenID Connect ProtocolThe OpenID Connect Protocol
The OpenID Connect Protocol
 
RMLL 2014 - LDAP Synchronization Connector
RMLL 2014 - LDAP Synchronization ConnectorRMLL 2014 - LDAP Synchronization Connector
RMLL 2014 - LDAP Synchronization Connector
 

LemonLDAP::NG, un WebSSO libre (ConFoo 2011)

  • 1. LemonLDAP::NG LemonLDAP::NG Un WebSSO libre Clément OUDOT LemonLDAP::NG leader Consultant LINAGORA
  • 2. Questions du jour ● Qui est ce conférencier 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 conférence ? 10/03/11 2 http://lemonldap-ng.org
  • 3. LemonLDAP::NG Bas les masques 10/03/11 3 http://lemonldap-ng.org
  • 4. Clément OUDOT ● Contributeur LemonLDAP::NG depuis 2007, Leader depuis 2011, en relai de Xavier GUIMARD ● Leader du projet LDAP Tool Box ● Actif dans les communautés OpenLDAP et LDAP Synchronization Connector ● Membre de la cellule Identité / Sécurité du Groupe LINAGORA depuis 2003 ● Collabore au produit LINAGORA LinID 10/03/11 4 http://lemonldap-ng.org
  • 5. LemonLDAP::NG Pourquoi moi ? 10/03/11 5 http://lemonldap-ng.org
  • 6. Mon application gère ses utilisateurs ● Mon application possède sa propre base d'utilisateurs avec les mots de passe ● Les utilisateurs s'authentifient chez moi 10/03/11 6 http://lemonldap-ng.org
  • 7. Mon application utilise une base centrale ● Les utilisateurs existent déjà 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 10/03/11 7 http://lemonldap-ng.org
  • 8. La sécurité n'est pas mon métier ● 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 (biométrie, carte à puce, Kerberos, etc.) ? 10/03/11 8 http://lemonldap-ng.org
  • 9. La gestion d'identité n'est pas mon métier ● Comment créer le compte d'un utilisateur existant dans un autre référentiel ? ● Comment savoir que les informations de l'utilisateur ont changé ? ● Comment savoir que l'utilisateur n'existe plus ? ● Qui doit avoir accès à mon application, qui ne doit pas y accéder ? ● Que faire quand l'utilisateur a perdu son mot de passe ? 10/03/11 9 http://lemonldap-ng.org
  • 10. LemonLDAP::NG Le WebSSO ? 10/03/11 10 http://lemonldap-ng.org
  • 11. Qu'est-ce que le WebSSO ? ● SSO signifie « Single Sign On », qui peut se traduire en français 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 requêtes entre le client et le serveur, et indiquer au serveur que le client est bien authentifié 10/03/11 11 http://lemonldap-ng.org
  • 12. Architectures ● Deux architectures complémentaires existent : ● WebSSO par délégation ● WebSSO par mandataire inverse 10/03/11 12 http://lemonldap-ng.org
  • 13. Délégation 10/03/11 13 http://lemonldap-ng.org
  • 14. Mandataire inverse (reverse proxy) 10/03/11 14 http://lemonldap-ng.org
  • 15. LemonLDAP::NG LemonLDAP::NG se présente 10/03/11 15 http://lemonldap-ng.org
  • 16. Historique ● LemonLDAP a été créé en 2003 par Eric GERMAN (Ministère des Finances, France) pour remplace Novell iChain (Novell → llevon → Lemon) ● Comme Novell ou SiteMinder, LemonLDAP utilise des en- têtes HTTP pour propager l'identité de l'utilisateur ● LemonLDAP::NG est une réécriture complète de LemonLDAP par Xavier GUIMARD (Gendarmerie Nationale, France) en 2005 ● Thomas CHEMINEAU et Clément OUDOT complètent l'équipe de développement 10/03/11 16 http://lemonldap-ng.org
  • 17. 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 réalisant le contrôle des accès aux applications Web ● Le manager (Manager) : interface de configuration, explorateur de sessions ● Tous les composants sont écrits en Perl ● Nécessite Apache et mod_perl 10/03/11 17 http://lemonldap-ng.org
  • 18. Vue macroscopique 10/03/11 18 http://lemonldap-ng.org
  • 19. Cinématique principale 10/03/11 19 http://lemonldap-ng.org
  • 20. Les phases d'authentification ● LemonLDAP::NG découpe l'authentification en plusieurs phases : ● Vérification des sessions existantes ● Récupération des données d'authentification ● Recherche de l'utilisateur ● Authentification ● Stockage des données dans la session ● Écriture du cookie ● Redirection (menu ou application demandée) 10/03/11 20 http://lemonldap-ng.org
  • 21. Les différentes bases ● Plusieurs « bases » sont utilisées : ● Authentification : comment vérifier les données d'authentification ● Utilisateurs : où trouver les données de l'utilisateur ● Mots de passe : où changer le mot de passe de l'utilisateur ● Exemple d'utilisation : authentification par Kerberos, données de l'utilisateur dans un annuaire LDAP 10/03/11 21 http://lemonldap-ng.org
  • 22. Méthodes d'authentification ● LemonLDAP::NG supporte de nombreuses méthodes d'authentification : ● LDAP ● Database ● SSL X509 ● Apache built-in modules (Kerberos, OTP, ...) ● SAML 2.0 ● OpenID ● Twitter ● CAS ● 10/03/11 22 http://lemonldap-ng.org
  • 23. Rendre mon application compatible ● LemonLDAP::NG est très peu intrusif : ● Pas de module à importer dans le code ● Pas de WebService à appeler ● Simplement lire une en-tête HTTP ! ● Une application qui utilise l'authentification Apache (REMOTE_USER) est compatible ! ● Adaptations possibles de l'application : ● Auto-création du compte local de l'utilisateur ● Suppression du formulaire d'authentification 10/03/11 23 http://lemonldap-ng.org
  • 24. LemonLDAP::NG Et les autres ? 10/03/11 24 http://lemonldap-ng.org
  • 25. 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 10/03/11 25 http://lemonldap-ng.org
  • 26. Cinématique CAS 10/03/11 26 http://lemonldap-ng.org
  • 27. 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 10/03/11 27 http://lemonldap-ng.org
  • 28. Cinématique OpenID 10/03/11 28 http://lemonldap-ng.org
  • 29. SAML ● Cercle de confiance : enregistrement préalable des fournisseurs de services et des fournisseurs d'identités ● Plusieurs méthodes : GET / POST / Artefact GET / Artefact POST 10/03/11 29 http://lemonldap-ng.org
  • 30. Cinématique SAML 10/03/11 30 http://lemonldap-ng.org
  • 31. LemonLDAP::NG et les autres ● LemonLDAP::NG peut déléguer son authentification à CAS, OpenID et SAML (avec récupération 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 10/03/11 31 http://lemonldap-ng.org
  • 32. LemonLDAP::NG Questions ? 10/03/11 32 http://lemonldap-ng.org
  • 33. LemonLDAP::NG Merci de votre attention 10/03/11 33 http://lemonldap-ng.org