lemonldap::ng, un websso libre en perl !
Post on 12-Jun-2015
1.864 Views
Preview:
TRANSCRIPT
- 1. LemonLDAP::NG Web access under protect Un WebSSO libre en Perl! Clment OUDOT Journes Perl 24 juin 2011
2. Sommaire.pm
- Prsentation de LemonLDAP::NG
3. L'cosystme Perl 4. Hackez LemonLDAP::NG 5. Prsentation.pm 6. Historique
- LemonLDAP a t cr en 2003 par Eric GERMAN (Ministre des Finances, France) pour remplace Novell iChain (Novell -> llevon -> Lemon)
7. Comme Novell ou SiteMinder, LemonLDAP utilise des en-ttes HTTP pour propager l'identit de l'utilisateur 8. LemonLDAP::NG est une rcriture complte de LemonLDAP par Xavier GUIMARD (Gendarmerie Nationale, France) en 2005 9. Thomas CHEMINEAU et Clment OUDOT compltent l'quipe de dveloppement 10. Fonctionnalits principales
- Portail d'authentification
11. Menu dynamique des applications 12. Gestion du mot de passe (changement, rinitialisation, etc.) 13. Contrle d'accs par URL 14. Gnration d'en-ttes HTTP 15. Rejeu de formulaire (POST) 16. Notifications 17. Fournisseur d'identits 18. Parlons technique
- LemonLDAP::NG repose sur trois composants:
- Le portail (Portal): interface d'authentification, menu des applications, changement de mot de passe
19. Le handler (Handler): agent ralisant le contrle des accs aux applications Web 20. Le manager (Manager): interface de configuration, explorateur de sessions et de notifications 21. Vue macroscopique 22. Utilisateur Application Web Portail WebSSO Cinmatique simple 1 2 3 23. Cinmatique dtaille 24. Les diffrentes bases
- Plusieurs bases sont utilises:
- Authentification: comment vrifier les donnes d'authentification
25. Utilisateurs: o trouver les donnes de l'utilisateur 26. Mots de passe: o changer le mot de passe de l'utilisateur Exemple d'utilisation: authentification par Kerberos, donnes de l'utilisateur dans un annuaire LDAP 27. Mthodes d'authentification
- LemonLDAP::NG supporte de nombreuses mthodes d'authentification:
- LDAP
28. Database 29. SSL X509 30. Apache built-in modules (Kerberos, OTP, ...) 31. SAML 2.0 32. OpenID 33. Twitter 34. CAS 35. Yubikey 36. Ecosysteme.pm 37. Les modules Perl
- LemonLDAP::NG est avant tout bas sur Apache mod_perl et Perl CGI
38. Il utilise un trs grand nombre de modules Perl:Apache::Session, Net::LDAP, MIME::Base64,LWP::UserAgent, Cache::Cache, DBI,XML::Simple, CGI::Session,Regexp::Assemble, XML::LibXML, Crypt::Rijndael, IO::String, XML::LibXSLT, HTML::Template,SOAP::Lite, Config::IniFiles, JSON, Digest::HMAC, Crypt::OpenSSL::RSA, Crypt::OpenSSL::X509, Convert::PEM, Clone, MIME::Lite, Net::SMTP, String::Random, Net::OpenID, Net::Twitter, ... 39. CPAN
- Les modules Perl LemonLDAP::NG sont publis sur le CPAN:
- http://search.cpan.org/dist/Lemonldap-NG-Common/
40. http://search.cpan.org/dist/Lemonldap-NG-Handler/ 41. http://search.cpan.org/dist/Lemonldap-NG-Manager/ 42. http://search.cpan.org/dist/Lemonldap-NG-Portal/ Les autres lments (pages, scripts, etc.) sont fournis dans le sous-rpertoire example/ de chaque module 43. Surchargez camarades!
- LemonLDAP::NG surcharge la plupart des modules pour apporter ses propres spcificits:
- Lemonldap::NG::Common::Apache::Session: gestion de la gnration de la cl, recherche par critres, etc
44. Lemonldap::NG::Handler::CGI: gestion authentification et autorisation 45. LemonLDAP::NG::Common::Safe: activation paramtrable de la cage d'excution 46. Lemonldap::NG::Portal::OpenID::Server 47. Lemonldap::NG::Portal::_LDAP 48. ... 49. Hackez.pm 50. CGI Perl my $cgi = Lemonldap::NG::Handler::CGI->new ({}); $cgi->authenticate(); $cgi->authorize(); # Get attributes (or macros) my $cn = $cgi->user->{cn} # Test if user is member of a Lemonldap::NG group (or LDAP mapped group) if( $cgi->group('admin') ) { # special html code for admins } else { # another HTML code } 51. Crer son module d'authentification package Lemonldap::NG::Portal::AuthCustom; use Lemonldap::NG::Portal::Simple; sub authInit { PE_OK; } sub extractFormInfo { PE_OK; } sub setAuthSessionInfo { PE_OK; } sub authenticate { PE_OK; } sub authFinish { PE_OK; } sub authLogout { PE_OK; }
- Mthodes:
- authInit
52. extractFormInfo 53. setAuthSessionInfo 54. authenticate 55. authFinish 56. authLogout 57. authForce 58. Crer son module d'authentification
- Une fois le module cr, pour le charger, dans lemonldap-ng.ini:
authentication = Custom
- Autres modules pouvant tre crs:
- UserDBCustom
59. PasswordDBCustom 60. Les expressions rgulires, j'adore
- LemonLDAP::NG utilise les expressions rgulires:
- Pour dterminer l'URL protger
61. Pour calculer les droits 62. Pour vrifier les syntaxes des champs en entre 63. Pour afficher les modules du Menu De manire gnrale, LemonLDAP::NG value des expressions Perl pour tous les contrles d'accs 64. Fonctions tendues
- Certaines fonctions spciales sont fournies nativement:
- checkLogonHours
65. checkDate 66. basic 67. iso2unicode 68. unicode2iso 69. Fonctions personnalises
- Il est possible de charger sa propre librairie Perl (custom functions):
package SSOExtensions; sub function1 { my $portal = shift; my $param = shift; # Your nice code here return $param } 1; 70. JoinUs.pm http://lemonldap-ng.org IRC #lemonldap-ng @freenode 71. Questions.pm
top related