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.

S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG

782 vues

Publié le

LemonLDAP::NG est un logiciel libre de WebSSO et contrôle d'accès implémentant les principaux standards du marché comme CAS, SAML et OpenIDConnect. Intégré nativement aux distributions GNU/Linux, c'est une alternative très prisée de logiciels comme CA SiteMinder, Active Directory Federation Services, JASIG CAS, Shibboleth ou encore ForgeRock OpenAM. Il est très utilisé en France en particulier dans les Ministères (Finances, Culture, Justice, Gendarmerie Nationale, Agriculture, Intérieur) et les collectivités territoriales (Métropole de Montpellier, Ville de Villeurbanne, Métropole de Nantes).

Publié dans : Technologie
  • Soyez le premier à commenter

S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG

  1. 1. @SFLinux @clementoudot Authentification unique sur le Web avec le logiciel libre 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 Authentification unique / WebSSO
  4. 4. 4 @SFLinux @clementoudot Définitions ● SSO : Single Sign On / Authentification unique ● WebSSO : SSO pour les applications Web ● Protocoles de WebSSO : – CAS : Central Authentication Service – SAML : Security Assertion Markup Language – OpenID Connect – WS-Federation
  5. 5. 5 @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
  6. 6. 6 @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é
  7. 7. 7 @SFLinux @clementoudot Présentation de LemonLDAP::NG
  8. 8. 8 @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
  9. 9. 9 @SFLinux @clementoudot Historique 2003 2006 2010 2016 Création du projet Version NG SAML CAS OpenID OpenID Connect
  10. 10. 10 @SFLinux @clementoudot Composants CommonCommon ManagerManager HandlerHandler PortalPortal Interface de configuration Formulaires et menu Protection des applications
  11. 11. 11 @SFLinux @clementoudot
  12. 12. 12 @SFLinux @clementoudot
  13. 13. 13 @SFLinux @clementoudot Modules d'authentification LDAPLDAP ADAD ApacheApache SAMLSAML CASCAS RadiusRadius OpenIDOpenID WebIDWebID BrowserBrowser IDID DBIDBI YubikeyYubikey
  14. 14. 14 @SFLinux @clementoudot Passerelle multi-protocoles SAMLSAMLCASCAS OpenIDOpenID ConnectConnect
  15. 15. 15 @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
  16. 16. 16 @SFLinux @clementoudot Références d’utilisation de LemonLDAP::NG
  17. 17. 17 @SFLinux @clementoudot Gendarmerie Nationale ● 100 000 utilisateurs ● 300 applications protégées ● Plus de 25 millions de requêtes par jour
  18. 18. 18 @SFLinux @clementoudot Nantes Métropole ● Plus de 110 000 utilisateurs (comptes citoyens) ● 70 applications/services en ligne protégés
  19. 19. 19 @SFLinux @clementoudot Air Corsica ● 300 utilisateurs ● 10 applications protégées, dont Microsoft SharePoint et Outlook Web Access
  20. 20. 20 @SFLinux @clementoudot Ville de Villeurbanne ● 1000 utilisateurs ● 10 applications
  21. 21. 21 @SFLinux @clementoudot Implémentation des standards
  22. 22. 22 @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
  23. 23. 23 @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é
  24. 24. 24 @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
  25. 25. 25 @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
  26. 26. 26 @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
  27. 27. 27 @SFLinux @clementoudot 11 22 Identity Provider Service Provider http://auth.example.com/saml/singleSignOn?IDPInitiated=1&spConfKey=myserviceprovider SSO initié par l'IDP
  28. 28. 28 @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
  29. 29. 29 @SFLinux @clementoudot OpenID 1.0 OpenID 2.0 OpenID Connect
  30. 30. 30 @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
  31. 31. 31 @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
  32. 32. 32 @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
  33. 33. 33 @SFLinux @clementoudot http://jwt.io/
  34. 34. 34 @SFLinux @clementoudot L’exemple de France Connect
  35. 35. 35 À quoi ça sert ?
  36. 36. 36 Un service d'authentification ● FranceConnect ne fournit pas directement l'authentification, mais s'appuie sur des fournisseurs d'identités agréés, comme le service des impôts ● Après authentification, une « identité pivot » est transmise au service final (site d'une mairie, service public, etc.) ● Les échanges sont réalisés à l'aide du protocole OpenID Connect
  37. 37. 37
  38. 38. 38 Consulter les points de son permis
  39. 39. 39 Site service-public.fr
  40. 40. 40 Identité pivot (particulier) Champs Type Description given_name string prénoms séparés par des espaces (standard OpenIDConnect) family_name string le nom de famille de naissance (standard OpenIDConnect) birthdate string la date de naissance au format YYYY-MM-DD (standard OpenIDConnect) gender string male pour les hommes, female pour les femmes (standard OpenIDConnect) birthplace string le code INSEE du lieu de naissance (ou une chaîne vide si la personne est née à l'étranger) birthcountry string le code INSEE du pays de naissance
  41. 41. 41 Identité pivot (entreprise) Champs Type Description given_name string prénoms séparés par des espaces (standard OpenIDConnect) family_name string le nom de famille (standard OpenIDConnect) email string l'adresse mail de la personne siret string le numéro SIRET ou SIREN de l'entreprise (non standard)
  42. 42. 42 @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/
  43. 43. 43 @SFLinux @clementoudot Merci pour votre attention Blog : http://slfx.ca/coudot Twitter : @clementoudot

×