Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Présentation de LemonLDAP::NG aux Journées Perl 2016

990 vues

Publié le

LemonLDAP::NG supporte de nombreux protocoles comme CAS, OpenID Connect et SAML. Au travers de cette présentation nous verrons les principes de fonctionnement du logiciel ainsi que les technologies Perl utilisées (Mouse, PSGI, Net::LDAP, Apache::Session, Cache::Cache, etc.)

Publié dans : Technologie
  • Identifiez-vous pour voir les commentaires

  • Soyez le premier à aimer ceci

Présentation de LemonLDAP::NG aux Journées Perl 2016

  1. 1. @SFLinux @clementoudot Le logiciel LemonLDAP::NG
  2. 2. 2 @SFLinux @clementoudot Clément OUDOT @clementoudot http://sflx.ca/coudot ● Créé en 1999 ● >100 personnes ● Montréal, Quebec, Toronto, Paris ● ISO 9001:2004 / ISO 14001:2008 ● contact@savoirfairelinux.com
  3. 3. 3 @SFLinux @clementoudot Sommaire ● Présentation de LemonLDAP::NG ● Implémentation des standards ● Écosystème Perl
  4. 4. 4 @SFLinux @clementoudot Présentation de LemonLDAP::NG
  5. 5. 5 @SFLinux @clementoudot LemonLDAP::NG ● Logiciel libre (GPLv2+) / OW2 consortium ● Authentification unique (SSO), contrôle d'accès ● Fournisseur de Service / Fournisseur d'Identité ● Perl/Apache/Nginx/CGI/FCGI ● Réinitialisation de mot de passe et création de compte ● http://www.lemonldap-ng.org
  6. 6. 6 @SFLinux @clementoudot Historique 2003 2006 2010 2016 Création du projet Version NG SAML CAS OpenID OpenID Connect
  7. 7. 7 @SFLinux @clementoudot Composants CommonCommon ManagerManager HandlerHandler PortalPortal Interface de configuration Formulaires et menu Protection des applications
  8. 8. 8 @SFLinux @clementoudot
  9. 9. 9 @SFLinux @clementoudot Fonctionnement basique d'un WebSSO 1.L'utilisateur accède sans être authentifié à une application intégrée au WebSSO 2.Il est redirigé sur un service d'authentification qui valide son identité et fournit un jeton 3.Le jeton est transmis à l'application qui obtient l'identité de l'utilisateur en validant/résolvant ce jeton 4.L'utilisateur accède aux autres applications sur le même principe, sans se réauthentifier
  10. 10. 10 @SFLinux @clementoudot Application Web Portail d'authentification Premier accès Redirection pour authentification Génération d'un jeton Envoi du jeton Validation du jeton Récupération de l'identité
  11. 11. 11 @SFLinux @clementoudot
  12. 12. 12 @SFLinux @clementoudot Modules d'authentification LDAPLDAP ADAD ApacheApache SAMLSAML CASCAS RadiusRadius OpenIDOpenID WebIDWebID BrowserBrowser IDID DBIDBI YubikeyYubikey
  13. 13. 13 @SFLinux @clementoudot Passerelle multi-protocoles SAMLSAMLCASCAS OpenIDOpenID ConnectConnect
  14. 14. 14 @SFLinux @clementoudot Fonctions « self service » ChangementChangement de mot dede mot de passepasse RéinitialisatiRéinitialisati on de moton de mot de passede passe CréationCréation dede comptecompte
  15. 15. 15 @SFLinux @clementoudot Implémentation des standards
  16. 16. 16 @SFLinux @clementoudot Le protocole CAS ● Central Authentication Service ● À l'origine, uniquement dédié à l'authentification (versions 1.0 et 2.0 du protocole) ● Possibilité de partager des attributs depuis la version 3.0 du protocole
  17. 17. 17 @SFLinux @clementoudot Client CAS Serveur CAS Premier accès Redirection pour authentification Génération d'un ST Envoi du ST Validation du jeton Récupération de l'identité
  18. 18. 18 @SFLinux @clementoudot Le protocole SAML ● Security Assertion Markup Language ● Basé sur XML, XML Security, SOAP ● Choix des méthodes HTTP (GET ou POST) ● Choix de l'utilisation d'un artefact pour transmettre les messages via SOAP (Artefact GET ou Artefact POST) ● Publication des informations de configuration (metadonnées) au format XML
  19. 19. 19 @SFLinux @clementoudot Spécifications du protocole ● Publiées sur le site de l'OASIS : – saml-core-2.0-os – saml-authn-context-2.0-os – saml-bindings-2.0-os – saml-conformance-2.0-os – saml-metadata-2.0-os – saml-profiles-2.0-os
  20. 20. 20 @SFLinux @clementoudot Fournisseur de service (SP) Fournisseur d'identité (IDP) Premier accès Choix de l'IDP Requête d'authentification Réponse d'authentificationEnvoi de la réponse Validation de la signature Lecture de l'assertion
  21. 21. 21 @SFLinux @clementoudot 11 22 Identity Provider Service Provider http://auth.example.com/saml/singleSignOn?IDPInitiated=1&spConfKey=myserviceprovider SSO initié par l'IDP
  22. 22. 22 @SFLinux @clementoudot Le protocole OpenID Connect ● Basé sur OAuth2, REST, JSON, JWT, JOSE ● Adapté aux navigateurs Web et aux applications mobiles natives ● Publication des informations de configuration au format JSON ● Consentement de l'utilisateur requis sur le partage d'attributs
  23. 23. 23 @SFLinux @clementoudot OpenID 1.0 OpenID 2.0 OpenID Connect
  24. 24. 24 @SFLinux @clementoudot Partie de confiance (RP) Fournisseur OpenID (OP) Premier accès Choix de l'OP Requête d'authentification Création du JWT Envoi du JWT Validation de la signature Lecture du JWT Lecture du UserInfo
  25. 25. 25 @SFLinux @clementoudot Spécification du protocole Core Discovery Dynamic Client Registration Session Management Form Post Response Mode Minimal Dynamic Complete ● Publiées sur le site de la fondation OpenID
  26. 26. 26 @SFLinux @clementoudot Autres standards impliqués OAuth 2.0 Core OAuth 2.0 Bearer OAuth 2.0 Assertions OAuth 2.0 JWT Profile OAuth 2.0 Responses JWT JWS JWE JWK JWA WebFinger JOSE
  27. 27. 27 @SFLinux @clementoudot http://jwt.io/
  28. 28. 28 @SFLinux @clementoudot Lien LL::NG / FranceConnect ● LemonLDAP::NG peut être configuré comme RP OpenID Connect ● France Connect peut être déclaré comme OP OpenID Connect ● Procédure détaillée : http://lemonldap-ng.org/documentation/latest/authopen idconnect_franceconnect ● Démonstration : https://auth.openid.club/
  29. 29. 29 @SFLinux @clementoudot Écosystème Perl
  30. 30. 30 @SFLinux @clementoudot Moose / Mouse ● Utilisation de Mouse (plus léger) sauf en Perl > 5.22 (bug https://github.com/gfx/p5-Mouse/issues/60) ● Principaux objets Mouse : – Lemonldap::NG::Common::Session – Lemonldap::NG::Common::Captcha – Lemonldap::NG::Common::PSGI::Request – Lemonldap::NG::Manager::Conf::Parser
  31. 31. 31 @SFLinux @clementoudot Les modules Apache::Session ● Nouveaux modules fournis via CPAN : – Apache::Session::LDAP – Apache::Session::NoSQL – Apache::Session::MongoDB – Apache::Session::Browseable ● Module interne intégrant la gestion du cache local : Lemonldap::NG::Common::Session ● Module d'interface à Apache::Session : Lemonldap::NG::Common::Apache ::Session
  32. 32. 32 @SFLinux @clementoudot Handler::API ● Sélection automatique d'une API pour la requête HTTP dans module Lemonldap::NG::Handler::API : – ApacheMP1 – ApacheMP2 – PSGI (Nginx) – CGI
  33. 33. 33 @SFLinux @clementoudot Manager ● Frontend écrit en AngularJS ● Backend Perl avec routeur dédié : Lemonldap::NG::Common::PSGI::Router
  34. 34. 34 @SFLinux @clementoudot CPAN ● Modules LL::NG publiés sur le CPAN : – http://search.cpan.org/dist/Lemonldap-NG-Common/ – http://search.cpan.org/dist/Lemonldap-NG-Handler/ – http://search.cpan.org/dist/Lemonldap-NG-Manager/ – http://search.cpan.org/dist/Lemonldap-NG-Portal/
  35. 35. 35 @SFLinux @clementoudot Merci pour votre attention Blog : http://slfx.ca/coudot Twitter : @clementoudot

×