SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
31 mars, 1er et 2 avril 2009



WebSSO, synchronisation et
contrôle des accès via LDAP
       Clément Oudot –
      Thomas Chemineau




        www.linagora.com
Sommaire général   2



●   Synchronisation d'identités
●   WebSSO et contrôle des accès
●   Démonstration




                  www.linagora.com
Sommaire       3



●   Synchronisation d'identités
    –   Présentation du projet LSC
    –   Principes d'une synchronisation d'identités
    –   Fonctionnalités de synchronisation de LSC




                    www.linagora.com
Présentation du projet LSC          4




●   Qu'est ce que LSC ?
    –   Projet Open Source, licence BSD
    –   Signifie LDAP Synchronisation Connector
    –   Anciennement issu du projet InterLDAP
    –   Couche applicative qui permet de synchroniser
        des référentiels de données divers vers un
        annuaire LDAP
    –   Technologie : JAVA
●   Projet communautaire : http://lsc-project.org


                     www.linagora.com
Synchronisation d'identités        5



●   Automatise les importations/exportations de
    données entre des référentiels de données et
    des annuaires LDAP
●   Alimentation d'annuaire supportant une base
    de données, un annuaire ou un fichier CSV
    comme source d'alimentation
●   Transformations spécifiques pour la gestion
    d'identités
●   Optimisé pour la rapidité d'exécution pour
    permettre une synchronisation continue



                  www.linagora.com
Principe de synchronisation d'identités               6



●   Deux niveaux d'information sur une identité :
    –   L'existance d'une identité elle même
    –   Les données spécifiques à chaque identité
●   Opérations de synchronisation :
    –   Création : report des nouvelles identités
    –   Suppression : retrait des identités supprimées
    –   Mise à jour : pour une identité existant de part et
        d'autre, recopie des données spécifiques




                      www.linagora.com
Principe de synchronisation d'identités            7



●   Des critères de synchronisation
    –   Type de la source (LDAP / base de données / CSV)
    –   Identification de la population ciblée
    –   Mapping et transformation des attributs sources –
        destination
    –   Actions différentes selon les opérations
        (création / mise à jour / suppression)




                      www.linagora.com
Fonctionnement général de LSC              8




●   3 niveaux de synchronisation :
    –   Base de données vers annuaire LDAP
    –   Fichier plat au format CSV vers annuaire LDAP
    –   Annuaire vers annuaire (ex : LDAP vers AD)




                     www.linagora.com
Fonctionnement général de LSC                                                    9

Base de
données


                        Processus d'extraction au
                              format CSV




           embarquée
                               Fichiers CSV      Structuration SQL




             BDB
                                    Importation (HSQLDB)




Base de
données
             Abstraction SQL
                                      Interface (IBATIS)


                               Objet JDBC       Sérialisation (XML)

                                         Objets LDAP


                                              BEAN
Annuaire                                                              Annuaire

                                       Traitement LSC
             Moteur




                                Objet JNDI           Objet LDAP




           www.linagora.com
Différents formats d'entrées       10



●   Les sources de synchronisation peuvent être de
    différentes natures (SGBD, LDAP)
●   Différents formats d'entrées :
    –   CSV : données injectées dans une base
        embarquée (HSQLDB)
    –   LDIF : données injectées dans un annuaire
        embarqué (OpenDS)




                     www.linagora.com
Différents formats de sorties             11



●   Les synchronisations génèrent des rapports
    détaillés, sous différents formats :
    –   CSV : les modifications apportées sur l'annuaire
        sont journalisées au format CSV
    –   LDIF : les modifications apportées sur l'annuaire
        sont journalisées au format LDIF
●   Différents niveaux de traçabilités et choix des
    opérations LDAP à tracer




                     www.linagora.com
Traitements des données            12



●   Des traitements simples, comme :
    –   Concaténation de plusieurs attributs sources
    –   Séparation des valeurs multiples d'un champ
        source vers un attribut LDAP multivalué cible
    –   Suppression des caractères diacritiques
●   Des traitements avancés, comme :
    –   Tests d'existence des DN
    –   Peuplement avancé des attributs
    –   Prise en charge d'Active Directory



                     www.linagora.com
Prise en charge d'Active Directory        13



●   Indispensable pour peupler les utilisateurs d'AD
●   UserAccountControl permet de spécifier l'état
    d'un compte utilisateur, par exemple :
    –   ACCOUNTDISABLE
    –   PASSWD_CANT_CHANGE
    –   PASSWORD_EXPIRED
●   Prise en charge de la synchronisation du mot de
    passe sur un flux SSL




                   www.linagora.com
Cas d'utilisation général                   14



                                    Interface de
                                     gestion de
                                      contenu
       Population 
    d'administrateurs




                                                     Application A
                                   Annuaire LDAP 
                                      central



  Source de
                                                     Application B
   données



                                                    Active Directory



Légende :
      Traitement automatisé de 
      synchronisation de données
      Traitement manuel de 
      manipulation de données




                        www.linagora.com
Sommaire   15



●   WebSSO et gestion des accès
    –   Concepts et définition du WebSSO
    –   Présentation de LemonLDAP::NG
    –   X-domain et Liberty Alliance




                    www.linagora.com
Définition du WebSSO             16


●   SSO signifie « Single Sign On », qui peut se
    traduire en français par « authentification
    unique ».
●   Le SSO regroupe plusieurs fonctionnalités :
    –   Couple identifiant/mot de passe unique
    –   Transmission transparente des informations de
        session aux applications
    –   Gestion des profils applicatifs, c'est-à-dire qui
        accède à quoi




                      www.linagora.com
SSO par agent   17




www.linagora.com
SSO par délégation   18




www.linagora.com
SSO par mandataire inverse   19




  www.linagora.com
Le protocole HTTP                          20




            GET http://www.linagora.com HTTP/1.1
            Accept: text/html
            User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.7.6)




HTTP/1.1 200 OK
Date: Thu, 13 Mar 2008 15:05:29 GMT
Server: Apache
Content-Length: 264
Content-Type: text/html; charset=iso-8859-1

<?xml version=quot;1.0quot; encoding=quot;iso-8859-1quot; ?>
<!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0
Transitional//ENquot; quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdquot;>
<html xmlns=quot;http://www.w3.org/1999/xhtmlquot; lang=quot;frquot; xml:lang=quot;frquot; dir=quot;ltrquot;>
<head>
<title>Linagora, integrateur de reference sur le marche des logiciels libres</title>

....
</html>




                    www.linagora.com
Présentation de LemonLDAP::NG               21


●   LemonLDAP est un ensemble de scripts et de
    modules Perl utilisés à travers mod_perl et le
    serveur HTTP Apache
●   LemonLDAP et LemonLDAP::NG sont des
    logiciels libres, les projets sont hébergés chez
    OW2 : http://lemonldap.objectweb.org
●   LemonLDAP a été créé par Eric German, du
    Ministère des Finances
●   La version ::NG a été écrite par Xavier
    Guimard, de la Gendarmerie Nationale



                   www.linagora.com
Principes         22


●   Le principe général est d'utiliser un annuaire
    LDAP pour :
    –   authentifier l'utilisateur (vérification du mot de
        passe)
    –   effectuer un contrôle d'accès (selon les attributs
        LDAP de l'utilisateur)
    –   approvisionner les applications (par
        transmissions des attributs LDAP dans les en-
        têtes HTTP)
●   LemonLDAP::NG a été choisi pour le projet
    FederID (http://www.federid.org)


                      www.linagora.com
Fonctionnement général   23




www.linagora.com
Intégration d'une application             24


●   Pré-requis :
    –   Accès au code source et possibilité de le modifier
    –   disposer d'un langage permettant la lecture des en-
        têtes HTTP
●   Désactiver le formulaire d'authentification local
●   Lire les en-têtes HTTP, en particulier celle
    fournissant l'identité de l'utilisateur




                       www.linagora.com
Ajout d'une application dans le             25
                                      WebSSO
●   Utilisation du Manager pour créer un nouvel
    hôte virtuel dans la configuration
    LemonLDAP::NG :
    –   Nom de l'hôte virtuel
    –   Règles d'accès
    –   Informations transmises
●   Configuration du serveur Apache2 :
    –   Ajout d'un hôte virtuel ou reprise de l'existant
    –   Ajout des paramètres d'appel du Handler




                      www.linagora.com
Présentation du X-domain           26


●   Un domaine est constitué d'un nom (linagora,
    yahoo, google, ...) et d'une extension, appelée
    aussi suffixe (fr, de, com, net, ...).
●   La spécification des cookies précise qu'un
    cookie doit être déclaré sur un domaine et
    envoyé à aucun autre. Les navigateurs refusent
    d'ailleurs de transmettre un cookie à un
    domaine différent de celui qui l'a émis.
●    Certaines applications sont parfois réparties
    sur plusieurs domaines, elles utilisent alors des
    mécanismes dits de « cross-domain ».



                   www.linagora.com
X-domain        27


●   Plusieurs solutions techniques permettent de
    faire du cross-domain, la plus répandue
    consiste à faire transiter le numéro de session
    dans l'URL.
●   L'architecture cross-domain suppose
    généralement l'existence d'un serveur maître
    unique, réalisant l'authentification et la mise en
    session des informations, et de un ou plusieurs
    esclaves, utilisant le numéro de session
    transmis pour retrouver les informations.




                   www.linagora.com
Liberty Alliance                   28
                                                                               2

                                                                                               13
                                                                4
                                  8                        12                                         1

             5                             9                           3
                                                                                               Agent (Handler)




                                      Assertion Consumer
                 Identifiant
                 Mot de passe                                                                  15
                                                                                      14
                       6
Fournisseur                                                          Portail
 d'identités                                                        WebSSO                          Application
                                                                                                     protégée




         7                         10                           11
                           LDAP                                                     Sessions



                                  www.linagora.com
Démonstration   29




Passons à la pratique !




    www.linagora.com
30




Merci de votre attention


     Retrouvez-nous
  sur notre stand B25 !

       www.linagora.com

Contenu connexe

Similaire à WebSSO, synchronisation et contrôle des accès via LDAP

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
 
[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
 
Construire son application web de gestion de contenu d'annuaire LDAP
Construire son application web de gestion de contenu d'annuaire LDAPConstruire son application web de gestion de contenu d'annuaire LDAP
Construire son application web de gestion de contenu d'annuaire LDAPClément OUDOT
 
WebSSO et gestion des accès
WebSSO et gestion des accèsWebSSO et gestion des accès
WebSSO et gestion des accèsLINAGORA
 
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéalOpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéalJonathan Clarke
 
Séminaire LinID LINAGORA - juin 2009
Séminaire LinID LINAGORA - juin 2009Séminaire LinID LINAGORA - juin 2009
Séminaire LinID LINAGORA - juin 2009LINAGORA
 
Présentation de l'offre IAM de LINAGORA LinID
Présentation de l'offre IAM de LINAGORA LinIDPrésentation de l'offre IAM de LINAGORA LinID
Présentation de l'offre IAM de LINAGORA LinIDMichel-Marie Maudet
 
Matinée Pour Comprendre LinID - Intégration du serveur Active Directory avec ...
Matinée Pour Comprendre LinID - Intégration du serveur Active Directory avec ...Matinée Pour Comprendre LinID - Intégration du serveur Active Directory avec ...
Matinée Pour Comprendre LinID - Intégration du serveur Active Directory avec ...Clément OUDOT
 
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeGestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeMongoDB
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQLAntoine Augusti
 
LemonLDAP::NG et le support SAML2
LemonLDAP::NG et le support SAML2LemonLDAP::NG et le support SAML2
LemonLDAP::NG et le support SAML2Clément OUDOT
 
La caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsLa caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsChristopheTricot
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLHervé Leclerc
 
[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
 
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...Jean-Michel Bouffard
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Tugdual Grall
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressourceAntoine Pouch
 

Similaire à WebSSO, synchronisation et contrôle des accès via LDAP (20)

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...
 
[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 !
 
Construire son application web de gestion de contenu d'annuaire LDAP
Construire son application web de gestion de contenu d'annuaire LDAPConstruire son application web de gestion de contenu d'annuaire LDAP
Construire son application web de gestion de contenu d'annuaire LDAP
 
WebSSO et gestion des accès
WebSSO et gestion des accèsWebSSO et gestion des accès
WebSSO et gestion des accès
 
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéalOpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
OpenLDAP - Astuces pour en faire l'annuaire d'entreprise idéal
 
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 de l'offre IAM de LINAGORA LinID
Présentation de l'offre IAM de LINAGORA LinIDPrésentation de l'offre IAM de LINAGORA LinID
Présentation de l'offre IAM de LINAGORA LinID
 
Ter Web Service Intro
Ter Web Service IntroTer Web Service Intro
Ter Web Service Intro
 
Matinée Pour Comprendre LinID - Intégration du serveur Active Directory avec ...
Matinée Pour Comprendre LinID - Intégration du serveur Active Directory avec ...Matinée Pour Comprendre LinID - Intégration du serveur Active Directory avec ...
Matinée Pour Comprendre LinID - Intégration du serveur Active Directory avec ...
 
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeGestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQL
 
LemonLDAP::NG et le support SAML2
LemonLDAP::NG et le support SAML2LemonLDAP::NG et le support SAML2
LemonLDAP::NG et le support SAML2
 
La caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsLa caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informations
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
[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 ?
 
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...
Web2.0: Les caractéristiques et les technologies qui définissent la nouvelle ...
 
Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)Introduction aux RIA (Rich Internet Applications)
Introduction aux RIA (Rich Internet Applications)
 
Architecture de services web de type ressource
Architecture de services web de type ressourceArchitecture de services web de type ressource
Architecture de services web de type ressource
 

Plus de LINAGORA

Personal branding : e-recrutement et réseaux sociaux professionnels
Personal branding : e-recrutement et réseaux sociaux professionnels Personal branding : e-recrutement et réseaux sociaux professionnels
Personal branding : e-recrutement et réseaux sociaux professionnels LINAGORA
 
Construisons ensemble le chatbot bancaire dedemain !
Construisons ensemble le chatbot bancaire dedemain !Construisons ensemble le chatbot bancaire dedemain !
Construisons ensemble le chatbot bancaire dedemain !LINAGORA
 
ChatBots et intelligence artificielle arrivent dans les banques
ChatBots et intelligence artificielle arrivent dans les banques ChatBots et intelligence artificielle arrivent dans les banques
ChatBots et intelligence artificielle arrivent dans les banques LINAGORA
 
Deep Learning in practice : Speech recognition and beyond - Meetup
Deep Learning in practice : Speech recognition and beyond - MeetupDeep Learning in practice : Speech recognition and beyond - Meetup
Deep Learning in practice : Speech recognition and beyond - MeetupLINAGORA
 
Advanced Node.JS Meetup
Advanced Node.JS MeetupAdvanced Node.JS Meetup
Advanced Node.JS MeetupLINAGORA
 
Call a C API from Python becomes more enjoyable with CFFI
Call a C API from Python becomes more enjoyable with CFFICall a C API from Python becomes more enjoyable with CFFI
Call a C API from Python becomes more enjoyable with CFFILINAGORA
 
[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)
[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)
[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)LINAGORA
 
Angular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entrepriseAngular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entrepriseLINAGORA
 
Comment faire ses mappings ElasticSearch aux petits oignons ? - LINAGORA
Comment faire ses mappings ElasticSearch aux petits oignons ? - LINAGORAComment faire ses mappings ElasticSearch aux petits oignons ? - LINAGORA
Comment faire ses mappings ElasticSearch aux petits oignons ? - LINAGORALINAGORA
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraLINAGORA
 
Industrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec DrupalIndustrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec DrupalLINAGORA
 
CapDémat Evolution plateforme de GRU pour collectivités
CapDémat Evolution plateforme de GRU pour collectivitésCapDémat Evolution plateforme de GRU pour collectivités
CapDémat Evolution plateforme de GRU pour collectivitésLINAGORA
 
Présentation du marché P2I UGAP « Support sur Logiciels Libres »
Présentation du marché P2I UGAP « Support sur Logiciels Libres »Présentation du marché P2I UGAP « Support sur Logiciels Libres »
Présentation du marché P2I UGAP « Support sur Logiciels Libres »LINAGORA
 
Offre de demat d'Adullact projet
Offre de demat d'Adullact projet Offre de demat d'Adullact projet
Offre de demat d'Adullact projet LINAGORA
 
La dématérialisation du conseil minicipal
La dématérialisation du conseil minicipalLa dématérialisation du conseil minicipal
La dématérialisation du conseil minicipalLINAGORA
 
Open stack @ sierra wireless
Open stack @ sierra wirelessOpen stack @ sierra wireless
Open stack @ sierra wirelessLINAGORA
 
OpenStack - open source au service du Cloud
OpenStack - open source au service du CloudOpenStack - open source au service du Cloud
OpenStack - open source au service du CloudLINAGORA
 
Architecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPArchitecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPLINAGORA
 
Présentation offre LINID
Présentation offre LINIDPrésentation offre LINID
Présentation offre LINIDLINAGORA
 
Matinée pour conmrendre consacrée à LinID.org, gestion, fédération et contrôl...
Matinée pour conmrendre consacrée à LinID.org, gestion, fédération et contrôl...Matinée pour conmrendre consacrée à LinID.org, gestion, fédération et contrôl...
Matinée pour conmrendre consacrée à LinID.org, gestion, fédération et contrôl...LINAGORA
 

Plus de LINAGORA (20)

Personal branding : e-recrutement et réseaux sociaux professionnels
Personal branding : e-recrutement et réseaux sociaux professionnels Personal branding : e-recrutement et réseaux sociaux professionnels
Personal branding : e-recrutement et réseaux sociaux professionnels
 
Construisons ensemble le chatbot bancaire dedemain !
Construisons ensemble le chatbot bancaire dedemain !Construisons ensemble le chatbot bancaire dedemain !
Construisons ensemble le chatbot bancaire dedemain !
 
ChatBots et intelligence artificielle arrivent dans les banques
ChatBots et intelligence artificielle arrivent dans les banques ChatBots et intelligence artificielle arrivent dans les banques
ChatBots et intelligence artificielle arrivent dans les banques
 
Deep Learning in practice : Speech recognition and beyond - Meetup
Deep Learning in practice : Speech recognition and beyond - MeetupDeep Learning in practice : Speech recognition and beyond - Meetup
Deep Learning in practice : Speech recognition and beyond - Meetup
 
Advanced Node.JS Meetup
Advanced Node.JS MeetupAdvanced Node.JS Meetup
Advanced Node.JS Meetup
 
Call a C API from Python becomes more enjoyable with CFFI
Call a C API from Python becomes more enjoyable with CFFICall a C API from Python becomes more enjoyable with CFFI
Call a C API from Python becomes more enjoyable with CFFI
 
[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)
[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)
[UDS] Cloud Computing "pour les nuls" (Exemple avec LinShare)
 
Angular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entrepriseAngular v2 et plus : le futur du développement d'applications en entreprise
Angular v2 et plus : le futur du développement d'applications en entreprise
 
Comment faire ses mappings ElasticSearch aux petits oignons ? - LINAGORA
Comment faire ses mappings ElasticSearch aux petits oignons ? - LINAGORAComment faire ses mappings ElasticSearch aux petits oignons ? - LINAGORA
Comment faire ses mappings ElasticSearch aux petits oignons ? - LINAGORA
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
 
Industrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec DrupalIndustrialisez le développement et la maintenance de vos sites avec Drupal
Industrialisez le développement et la maintenance de vos sites avec Drupal
 
CapDémat Evolution plateforme de GRU pour collectivités
CapDémat Evolution plateforme de GRU pour collectivitésCapDémat Evolution plateforme de GRU pour collectivités
CapDémat Evolution plateforme de GRU pour collectivités
 
Présentation du marché P2I UGAP « Support sur Logiciels Libres »
Présentation du marché P2I UGAP « Support sur Logiciels Libres »Présentation du marché P2I UGAP « Support sur Logiciels Libres »
Présentation du marché P2I UGAP « Support sur Logiciels Libres »
 
Offre de demat d'Adullact projet
Offre de demat d'Adullact projet Offre de demat d'Adullact projet
Offre de demat d'Adullact projet
 
La dématérialisation du conseil minicipal
La dématérialisation du conseil minicipalLa dématérialisation du conseil minicipal
La dématérialisation du conseil minicipal
 
Open stack @ sierra wireless
Open stack @ sierra wirelessOpen stack @ sierra wireless
Open stack @ sierra wireless
 
OpenStack - open source au service du Cloud
OpenStack - open source au service du CloudOpenStack - open source au service du Cloud
OpenStack - open source au service du Cloud
 
Architecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAPArchitecture d'annuaire hautement disponible avec OpenLDAP
Architecture d'annuaire hautement disponible avec OpenLDAP
 
Présentation offre LINID
Présentation offre LINIDPrésentation offre LINID
Présentation offre LINID
 
Matinée pour conmrendre consacrée à LinID.org, gestion, fédération et contrôl...
Matinée pour conmrendre consacrée à LinID.org, gestion, fédération et contrôl...Matinée pour conmrendre consacrée à LinID.org, gestion, fédération et contrôl...
Matinée pour conmrendre consacrée à LinID.org, gestion, fédération et contrôl...
 

WebSSO, synchronisation et contrôle des accès via LDAP

  • 1. 31 mars, 1er et 2 avril 2009 WebSSO, synchronisation et contrôle des accès via LDAP Clément Oudot – Thomas Chemineau www.linagora.com
  • 2. Sommaire général 2 ● Synchronisation d'identités ● WebSSO et contrôle des accès ● Démonstration www.linagora.com
  • 3. Sommaire 3 ● Synchronisation d'identités – Présentation du projet LSC – Principes d'une synchronisation d'identités – Fonctionnalités de synchronisation de LSC www.linagora.com
  • 4. Présentation du projet LSC 4 ● Qu'est ce que LSC ? – Projet Open Source, licence BSD – Signifie LDAP Synchronisation Connector – Anciennement issu du projet InterLDAP – Couche applicative qui permet de synchroniser des référentiels de données divers vers un annuaire LDAP – Technologie : JAVA ● Projet communautaire : http://lsc-project.org www.linagora.com
  • 5. Synchronisation d'identités 5 ● Automatise les importations/exportations de données entre des référentiels de données et des annuaires LDAP ● Alimentation d'annuaire supportant une base de données, un annuaire ou un fichier CSV comme source d'alimentation ● Transformations spécifiques pour la gestion d'identités ● Optimisé pour la rapidité d'exécution pour permettre une synchronisation continue www.linagora.com
  • 6. Principe de synchronisation d'identités 6 ● Deux niveaux d'information sur une identité : – L'existance d'une identité elle même – Les données spécifiques à chaque identité ● Opérations de synchronisation : – Création : report des nouvelles identités – Suppression : retrait des identités supprimées – Mise à jour : pour une identité existant de part et d'autre, recopie des données spécifiques www.linagora.com
  • 7. Principe de synchronisation d'identités 7 ● Des critères de synchronisation – Type de la source (LDAP / base de données / CSV) – Identification de la population ciblée – Mapping et transformation des attributs sources – destination – Actions différentes selon les opérations (création / mise à jour / suppression) www.linagora.com
  • 8. Fonctionnement général de LSC 8 ● 3 niveaux de synchronisation : – Base de données vers annuaire LDAP – Fichier plat au format CSV vers annuaire LDAP – Annuaire vers annuaire (ex : LDAP vers AD) www.linagora.com
  • 9. Fonctionnement général de LSC 9 Base de données Processus d'extraction au format CSV embarquée Fichiers CSV Structuration SQL BDB Importation (HSQLDB) Base de données Abstraction SQL Interface (IBATIS) Objet JDBC Sérialisation (XML) Objets LDAP BEAN Annuaire Annuaire Traitement LSC Moteur Objet JNDI Objet LDAP www.linagora.com
  • 10. Différents formats d'entrées 10 ● Les sources de synchronisation peuvent être de différentes natures (SGBD, LDAP) ● Différents formats d'entrées : – CSV : données injectées dans une base embarquée (HSQLDB) – LDIF : données injectées dans un annuaire embarqué (OpenDS) www.linagora.com
  • 11. Différents formats de sorties 11 ● Les synchronisations génèrent des rapports détaillés, sous différents formats : – CSV : les modifications apportées sur l'annuaire sont journalisées au format CSV – LDIF : les modifications apportées sur l'annuaire sont journalisées au format LDIF ● Différents niveaux de traçabilités et choix des opérations LDAP à tracer www.linagora.com
  • 12. Traitements des données 12 ● Des traitements simples, comme : – Concaténation de plusieurs attributs sources – Séparation des valeurs multiples d'un champ source vers un attribut LDAP multivalué cible – Suppression des caractères diacritiques ● Des traitements avancés, comme : – Tests d'existence des DN – Peuplement avancé des attributs – Prise en charge d'Active Directory www.linagora.com
  • 13. Prise en charge d'Active Directory 13 ● Indispensable pour peupler les utilisateurs d'AD ● UserAccountControl permet de spécifier l'état d'un compte utilisateur, par exemple : – ACCOUNTDISABLE – PASSWD_CANT_CHANGE – PASSWORD_EXPIRED ● Prise en charge de la synchronisation du mot de passe sur un flux SSL www.linagora.com
  • 14. Cas d'utilisation général 14 Interface de gestion de contenu Population  d'administrateurs Application A Annuaire LDAP  central Source de Application B données Active Directory Légende : Traitement automatisé de  synchronisation de données Traitement manuel de  manipulation de données www.linagora.com
  • 15. Sommaire 15 ● WebSSO et gestion des accès – Concepts et définition du WebSSO – Présentation de LemonLDAP::NG – X-domain et Liberty Alliance www.linagora.com
  • 16. Définition du WebSSO 16 ● SSO signifie « Single Sign On », qui peut se traduire en français par « authentification unique ». ● Le SSO regroupe plusieurs fonctionnalités : – Couple identifiant/mot de passe unique – Transmission transparente des informations de session aux applications – Gestion des profils applicatifs, c'est-à-dire qui accède à quoi www.linagora.com
  • 17. SSO par agent 17 www.linagora.com
  • 18. SSO par délégation 18 www.linagora.com
  • 19. SSO par mandataire inverse 19 www.linagora.com
  • 20. Le protocole HTTP 20 GET http://www.linagora.com HTTP/1.1 Accept: text/html User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.7.6) HTTP/1.1 200 OK Date: Thu, 13 Mar 2008 15:05:29 GMT Server: Apache Content-Length: 264 Content-Type: text/html; charset=iso-8859-1 <?xml version=quot;1.0quot; encoding=quot;iso-8859-1quot; ?> <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0 Transitional//ENquot; quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdquot;> <html xmlns=quot;http://www.w3.org/1999/xhtmlquot; lang=quot;frquot; xml:lang=quot;frquot; dir=quot;ltrquot;> <head> <title>Linagora, integrateur de reference sur le marche des logiciels libres</title> .... </html> www.linagora.com
  • 21. Présentation de LemonLDAP::NG 21 ● LemonLDAP est un ensemble de scripts et de modules Perl utilisés à travers mod_perl et le serveur HTTP Apache ● LemonLDAP et LemonLDAP::NG sont des logiciels libres, les projets sont hébergés chez OW2 : http://lemonldap.objectweb.org ● LemonLDAP a été créé par Eric German, du Ministère des Finances ● La version ::NG a été écrite par Xavier Guimard, de la Gendarmerie Nationale www.linagora.com
  • 22. Principes 22 ● Le principe général est d'utiliser un annuaire LDAP pour : – authentifier l'utilisateur (vérification du mot de passe) – effectuer un contrôle d'accès (selon les attributs LDAP de l'utilisateur) – approvisionner les applications (par transmissions des attributs LDAP dans les en- têtes HTTP) ● LemonLDAP::NG a été choisi pour le projet FederID (http://www.federid.org) www.linagora.com
  • 23. Fonctionnement général 23 www.linagora.com
  • 24. Intégration d'une application 24 ● Pré-requis : – Accès au code source et possibilité de le modifier – disposer d'un langage permettant la lecture des en- têtes HTTP ● Désactiver le formulaire d'authentification local ● Lire les en-têtes HTTP, en particulier celle fournissant l'identité de l'utilisateur www.linagora.com
  • 25. Ajout d'une application dans le 25 WebSSO ● Utilisation du Manager pour créer un nouvel hôte virtuel dans la configuration LemonLDAP::NG : – Nom de l'hôte virtuel – Règles d'accès – Informations transmises ● Configuration du serveur Apache2 : – Ajout d'un hôte virtuel ou reprise de l'existant – Ajout des paramètres d'appel du Handler www.linagora.com
  • 26. Présentation du X-domain 26 ● Un domaine est constitué d'un nom (linagora, yahoo, google, ...) et d'une extension, appelée aussi suffixe (fr, de, com, net, ...). ● La spécification des cookies précise qu'un cookie doit être déclaré sur un domaine et envoyé à aucun autre. Les navigateurs refusent d'ailleurs de transmettre un cookie à un domaine différent de celui qui l'a émis. ● Certaines applications sont parfois réparties sur plusieurs domaines, elles utilisent alors des mécanismes dits de « cross-domain ». www.linagora.com
  • 27. X-domain 27 ● Plusieurs solutions techniques permettent de faire du cross-domain, la plus répandue consiste à faire transiter le numéro de session dans l'URL. ● L'architecture cross-domain suppose généralement l'existence d'un serveur maître unique, réalisant l'authentification et la mise en session des informations, et de un ou plusieurs esclaves, utilisant le numéro de session transmis pour retrouver les informations. www.linagora.com
  • 28. Liberty Alliance 28 2 13 4 8 12 1 5 9 3 Agent (Handler) Assertion Consumer Identifiant Mot de passe 15 14 6 Fournisseur Portail d'identités WebSSO Application protégée 7 10 11 LDAP Sessions www.linagora.com
  • 29. Démonstration 29 Passons à la pratique ! www.linagora.com
  • 30. 30 Merci de votre attention Retrouvez-nous sur notre stand B25 ! www.linagora.com