WebSSO, synchronisation et contrôle des accès via LDAP   Clément Oudot – Thomas Chemineau
Sommaire général <ul><li>Synchronisation d'identités </li></ul><ul><li>WebSSO et contrôle des accès </li></ul><ul><li>Démo...
Sommaire <ul><li>Synchronisation d'identités </li></ul><ul><ul><li>Présentation du projet LSC </li></ul></ul><ul><ul><li>P...
<ul><li>Qu'est ce que LSC ? </li></ul><ul><ul><li>Projet Open Source, licence BSD </li></ul></ul><ul><ul><li>Signifie LDAP...
<ul><li>Automatise les importations/exportations de données entre des référentiels de données et des annuaires LDAP </li><...
<ul><li>Deux niveaux d'information sur une identité : </li></ul><ul><ul><li>L'existance d'une identité elle même </li></ul...
<ul><li>Des critères de synchronisation </li></ul><ul><ul><li>Type de la source (LDAP / base de données / CSV) </li></ul><...
<ul><li>3 niveaux de synchronisation : </li></ul><ul><ul><li>Base de données vers annuaire LDAP </li></ul></ul><ul><ul><li...
Fonctionnement général de LSC
<ul><li>Les sources de synchronisation peuvent être de différentes natures (SGBD, LDAP) </li></ul><ul><li>Différents forma...
<ul><li>Les synchronisations génèrent des rapports détaillés, sous différents formats : </li></ul><ul><ul><li>CSV : les mo...
<ul><li>Des traitements simples, comme : </li></ul><ul><ul><li>Concaténation de plusieurs attributs sources </li></ul></ul...
<ul><li>Indispensable pour peupler les utilisateurs d'AD </li></ul><ul><li>UserAccountControl permet de spécifier l'état d...
Cas d'utilisation général
Sommaire <ul><li>WebSSO et gestion des accès </li></ul><ul><ul><li>Concepts et définition du WebSSO </li></ul></ul><ul><ul...
Définition du WebSSO <ul><li>SSO signifie « Single Sign On », qui peut se traduire en français par « authentification uniq...
SSO par agent
SSO par délégation
SSO par mandataire inverse
Le protocole HTTP
Présentation de LemonLDAP::NG <ul><li>LemonLDAP est un ensemble de scripts et de modules Perl utilisés à travers mod_perl ...
Principes <ul><li>Le principe général est d'utiliser un annuaire LDAP pour : </li></ul><ul><ul><li>authentifier l'utilisat...
Fonctionnement général
Intégration d'une application <ul><li>Pré-requis : </li></ul><ul><ul><li>Accès au code source et possibilité de le modifie...
Ajout d'une application dans le WebSSO <ul><li>Utilisation du Manager pour créer un nouvel hôte virtuel dans la configurat...
Présentation du X-domain <ul><li>Un domaine est constitué d'un nom (linagora, yahoo, google, ...) et d'une extension, appe...
X-domain <ul><li>Plusieurs solutions techniques permettent de faire du cross-domain, la plus répandue consiste à faire tra...
Liberty Alliance Application protégée Portail WebSSO Fournisseur d'identités Agent (Handler) Sessions LDAP Identifiant Mot...
Démonstration Passons à la pratique !
Merci de votre attention Retrouvez-nous  sur notre stand B25 !
Upcoming SlideShare
Loading in...5
×

SL2009 - Identity Management Cycle - LDAP synchronization and WebSSO

2,427

Published on

Presentation of LSC project and LemonLDAP::NG

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,427
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
79
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

SL2009 - Identity Management Cycle - LDAP synchronization and WebSSO

  1. 1. WebSSO, synchronisation et contrôle des accès via LDAP Clément Oudot – Thomas Chemineau
  2. 2. Sommaire général <ul><li>Synchronisation d'identités </li></ul><ul><li>WebSSO et contrôle des accès </li></ul><ul><li>Démonstration </li></ul>
  3. 3. Sommaire <ul><li>Synchronisation d'identités </li></ul><ul><ul><li>Présentation du projet LSC </li></ul></ul><ul><ul><li>Principes d'une synchronisation d'identités </li></ul></ul><ul><ul><li>Fonctionnalités de synchronisation de LSC </li></ul></ul>
  4. 4. <ul><li>Qu'est ce que LSC ? </li></ul><ul><ul><li>Projet Open Source, licence BSD </li></ul></ul><ul><ul><li>Signifie LDAP Synchronisation Connector </li></ul></ul><ul><ul><li>Anciennement issu du projet InterLDAP </li></ul></ul><ul><ul><li>Couche applicative qui permet de synchroniser des référentiels de données divers vers un annuaire LDAP </li></ul></ul><ul><ul><li>Technologie : JAVA </li></ul></ul><ul><li>Projet communautaire : http://lsc-project.org </li></ul>Présentation du projet LSC
  5. 5. <ul><li>Automatise les importations/exportations de données entre des référentiels de données et des annuaires LDAP </li></ul><ul><li>Alimentation d'annuaire supportant une base de données , un annuaire ou un fichier CSV comme source d'alimentation </li></ul><ul><li>Transformations spécifiques pour la gestion d'identités </li></ul><ul><li>Optimisé pour la rapidité d'exécution pour permettre une synchronisation continue </li></ul>Synchronisation d'identités
  6. 6. <ul><li>Deux niveaux d'information sur une identité : </li></ul><ul><ul><li>L'existance d'une identité elle même </li></ul></ul><ul><ul><li>Les données spécifiques à chaque identité </li></ul></ul><ul><li>Opérations de synchronisation : </li></ul><ul><ul><li>Création : report des nouvelles identités </li></ul></ul><ul><ul><li>Suppression : retrait des identités supprimées </li></ul></ul><ul><ul><li>Mise à jour : pour une identité existant de part et d'autre, recopie des données spécifiques </li></ul></ul>Principe de synchronisation d'identités
  7. 7. <ul><li>Des critères de synchronisation </li></ul><ul><ul><li>Type de la source (LDAP / base de données / CSV) </li></ul></ul><ul><ul><li>Identification de la population ciblée </li></ul></ul><ul><ul><li>Mapping et transformation des attributs sources – destination </li></ul></ul><ul><ul><li>Actions différentes selon les opérations (création / mise à jour / suppression) </li></ul></ul>Principe de synchronisation d'identités
  8. 8. <ul><li>3 niveaux de synchronisation : </li></ul><ul><ul><li>Base de données vers annuaire LDAP </li></ul></ul><ul><ul><li>Fichier plat au format CSV vers annuaire LDAP </li></ul></ul><ul><ul><li>Annuaire vers annuaire (ex : LDAP vers AD) </li></ul></ul>Fonctionnement général de LSC
  9. 9. Fonctionnement général de LSC
  10. 10. <ul><li>Les sources de synchronisation peuvent être de différentes natures (SGBD, LDAP) </li></ul><ul><li>Différents formats d'entrées : </li></ul><ul><ul><li>CSV : données injectées dans une base embarquée (HSQLDB) </li></ul></ul><ul><ul><li>LDIF : données injectées dans un annuaire embarqué (OpenDS) </li></ul></ul>Différents formats d'entrées
  11. 11. <ul><li>Les synchronisations génèrent des rapports détaillés, sous différents formats : </li></ul><ul><ul><li>CSV : les modifications apportées sur l'annuaire sont journalisées au format CSV </li></ul></ul><ul><ul><li>LDIF : les modifications apportées sur l'annuaire sont journalisées au format LDIF </li></ul></ul><ul><li>Différents niveaux de traçabilités et choix des opérations LDAP à tracer </li></ul>Différents formats de sorties
  12. 12. <ul><li>Des traitements simples, comme : </li></ul><ul><ul><li>Concaténation de plusieurs attributs sources </li></ul></ul><ul><ul><li>Séparation des valeurs multiples d'un champ source vers un attribut LDAP multivalué cible </li></ul></ul><ul><ul><li>Suppression des caractères diacritiques </li></ul></ul><ul><li>Des traitements avancés, comme : </li></ul><ul><ul><li>Tests d'existence des DN </li></ul></ul><ul><ul><li>Peuplement avancé des attributs </li></ul></ul><ul><ul><li>Prise en charge d'Active Directory </li></ul></ul>Traitements des données
  13. 13. <ul><li>Indispensable pour peupler les utilisateurs d'AD </li></ul><ul><li>UserAccountControl permet de spécifier l'état d'un compte utilisateur, par exemple : </li></ul><ul><ul><li>ACCOUNTDISABLE </li></ul></ul><ul><ul><li>PASSWD_CANT_CHANGE </li></ul></ul><ul><ul><li>PASSWORD_EXPIRED </li></ul></ul><ul><li>Prise en charge de la synchronisation du mot de passe sur un flux SSL </li></ul>Prise en charge d'Active Directory
  14. 14. Cas d'utilisation général
  15. 15. Sommaire <ul><li>WebSSO et gestion des accès </li></ul><ul><ul><li>Concepts et définition du WebSSO </li></ul></ul><ul><ul><li>Présentation de LemonLDAP::NG </li></ul></ul><ul><ul><li>X-domain et Liberty Alliance </li></ul></ul>
  16. 16. Définition du WebSSO <ul><li>SSO signifie « Single Sign On », qui peut se traduire en français par « authentification unique ». </li></ul><ul><li>Le SSO regroupe plusieurs fonctionnalités : </li></ul><ul><ul><li>Couple identifiant/mot de passe unique </li></ul></ul><ul><ul><li>Transmission transparente des informations de session aux applications </li></ul></ul><ul><ul><li>Gestion des profils applicatifs, c'est-à-dire qui accède à quoi </li></ul></ul>
  17. 17. SSO par agent
  18. 18. SSO par délégation
  19. 19. SSO par mandataire inverse
  20. 20. Le protocole HTTP
  21. 21. Présentation de LemonLDAP::NG <ul><li>LemonLDAP est un ensemble de scripts et de modules Perl utilisés à travers mod_perl et le serveur HTTP Apache </li></ul><ul><li>LemonLDAP et LemonLDAP::NG sont des logiciels libres, les projets sont hébergés chez OW2 : http://lemonldap.objectweb.org </li></ul><ul><li>LemonLDAP a été créé par Eric German, du Ministère des Finances </li></ul><ul><li>La version ::NG a été écrite par Xavier Guimard, de la Gendarmerie Nationale </li></ul>
  22. 22. Principes <ul><li>Le principe général est d'utiliser un annuaire LDAP pour : </li></ul><ul><ul><li>authentifier l'utilisateur (vérification du mot de passe) </li></ul></ul><ul><ul><li>effectuer un contrôle d'accès (selon les attributs LDAP de l'utilisateur) </li></ul></ul><ul><ul><li>approvisionner les applications (par transmissions des attributs LDAP dans les en-têtes HTTP) </li></ul></ul><ul><li>LemonLDAP::NG a été choisi pour le projet FederID ( http://www.federid.org ) </li></ul>
  23. 23. Fonctionnement général
  24. 24. Intégration d'une application <ul><li>Pré-requis : </li></ul><ul><ul><li>Accès au code source et possibilité de le modifier </li></ul></ul><ul><ul><li>disposer d'un langage permettant la lecture des en-têtes HTTP </li></ul></ul><ul><li>Désactiver le formulaire d'authentification local </li></ul><ul><li>Lire les en-têtes HTTP, en particulier celle fournissant l'identité de l'utilisateur </li></ul>
  25. 25. Ajout d'une application dans le WebSSO <ul><li>Utilisation du Manager pour créer un nouvel hôte virtuel dans la configuration LemonLDAP::NG : </li></ul><ul><ul><li>Nom de l'hôte virtuel </li></ul></ul><ul><ul><li>Règles d'accès </li></ul></ul><ul><ul><li>Informations transmises </li></ul></ul><ul><li>Configuration du serveur Apache2 : </li></ul><ul><ul><li>Ajout d'un hôte virtuel ou reprise de l'existant </li></ul></ul><ul><ul><li>Ajout des paramètres d'appel du Handler </li></ul></ul>
  26. 26. Présentation du X-domain <ul><li>Un domaine est constitué d'un nom (linagora, yahoo, google, ...) et d'une extension, appelée aussi suffixe (fr, de, com, net, ...). </li></ul><ul><li>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. </li></ul><ul><li>Certaines applications sont parfois réparties sur plusieurs domaines, elles utilisent alors des mécanismes dits de « cross-domain ». </li></ul>
  27. 27. X-domain <ul><li>Plusieurs solutions techniques permettent de faire du cross-domain, la plus répandue consiste à faire transiter le numéro de session dans l'URL. </li></ul><ul><li>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. </li></ul>
  28. 28. Liberty Alliance Application protégée Portail WebSSO Fournisseur d'identités Agent (Handler) Sessions LDAP Identifiant Mot de passe Assertion Consumer 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
  29. 29. Démonstration Passons à la pratique !
  30. 30. Merci de votre attention Retrouvez-nous sur notre stand B25 !
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×