@SFLinux
@clementoudot
Authentification unique sur le Web avec
le logiciel libre LemonLDAP::NG
2
@SFLinux
@clementoudot
Clément OUDOT
@clementoudot
http://sflx.ca/coudot
● Créé en 1999
● >100 personnes
● Montréal, Que...
3
@SFLinux
@clementoudot
Authentification unique / WebSSO
4
@SFLinux
@clementoudot
Définitions
● SSO : Single Sign On / Authentification unique
● WebSSO : SSO pour les applications...
5
@SFLinux
@clementoudot
Fonctionnement basique d'un WebSSO
1.L'utilisateur accède sans être authentifié à une
application...
6
@SFLinux
@clementoudot
Application Web Portail d'authentification
Premier accès
Redirection pour
authentification
Généra...
7
@SFLinux
@clementoudot
Présentation de LemonLDAP::NG
8
@SFLinux
@clementoudot
LemonLDAP::NG
● Logiciel libre (GPLv2+) / OW2 consortium
● Authentification unique (SSO), contrôl...
9
@SFLinux
@clementoudot
Historique
2003 2006 2010 2016
Création
du projet
Version
NG
SAML
CAS
OpenID
OpenID
Connect
10
@SFLinux
@clementoudot
Composants
CommonCommon
ManagerManager
HandlerHandler
PortalPortal
Interface de
configuration
Fo...
11
@SFLinux
@clementoudot
12
@SFLinux
@clementoudot
13
@SFLinux
@clementoudot
Modules d'authentification
LDAPLDAP
ADAD
ApacheApache SAMLSAML
CASCAS RadiusRadius OpenIDOpenID
...
14
@SFLinux
@clementoudot
Passerelle multi-protocoles
SAMLSAMLCASCAS
OpenIDOpenID
ConnectConnect
15
@SFLinux
@clementoudot
Fonctions « self service »
ChangementChangement
de mot dede mot de
passepasse
RéinitialisatiRéin...
16
@SFLinux
@clementoudot
Références d’utilisation de
LemonLDAP::NG
17
@SFLinux
@clementoudot
Gendarmerie Nationale
● 100 000 utilisateurs
● 300 applications
protégées
● Plus de 25 millions ...
18
@SFLinux
@clementoudot
Nantes Métropole
● Plus de 110 000
utilisateurs (comptes
citoyens)
● 70 applications/services
en...
19
@SFLinux
@clementoudot
Air Corsica
● 300 utilisateurs
● 10 applications
protégées, dont Microsoft
SharePoint et Outlook...
20
@SFLinux
@clementoudot
Ville de Villeurbanne
● 1000 utilisateurs
● 10 applications
21
@SFLinux
@clementoudot
Implémentation des standards
22
@SFLinux
@clementoudot
Le protocole CAS
● Central Authentication Service
● À l'origine, uniquement dédié à l'authentifi...
23
@SFLinux
@clementoudot
Client CAS Serveur CAS
Premier accès
Redirection pour
authentification
Génération
d'un ST
Envoi
...
24
@SFLinux
@clementoudot
Le protocole SAML
● Security Assertion Markup Language
● Basé sur XML, XML Security, SOAP
● Choi...
25
@SFLinux
@clementoudot
Spécifications du protocole
● Publiées sur le site de l'OASIS :
– saml-core-2.0-os
– saml-authn-...
26
@SFLinux
@clementoudot
Fournisseur de service (SP) Fournisseur d'identité (IDP)
Premier accès
Choix de l'IDP
Requête
d'...
27
@SFLinux
@clementoudot
11
22
Identity
Provider
Service
Provider
http://auth.example.com/saml/singleSignOn?IDPInitiated=...
28
@SFLinux
@clementoudot
Le protocole OpenID Connect
● Basé sur OAuth2, REST, JSON, JWT, JOSE
● Adapté aux navigateurs We...
29
@SFLinux
@clementoudot
OpenID 1.0 OpenID 2.0 OpenID Connect
30
@SFLinux
@clementoudot
Partie de confiance (RP) Fournisseur OpenID (OP)
Premier accès
Choix de l'OP
Requête
d'authentif...
31
@SFLinux
@clementoudot
Spécification du protocole
Core
Discovery
Dynamic Client
Registration
Session
Management
Form Po...
32
@SFLinux
@clementoudot
Autres standards impliqués
OAuth 2.0
Core
OAuth 2.0
Bearer
OAuth 2.0
Assertions
OAuth 2.0
JWT Pr...
33
@SFLinux
@clementoudot
http://jwt.io/
34
@SFLinux
@clementoudot
L’exemple de France Connect
35
À quoi ça sert ?
36
Un service d'authentification
● FranceConnect ne fournit pas directement
l'authentification, mais s'appuie sur des four...
37
38
Consulter les points de son permis
39
Site service-public.fr
40
Identité pivot (particulier)
Champs Type Description
given_name string prénoms séparés par des espaces (standard OpenID...
41
Identité pivot (entreprise)
Champs Type Description
given_name string prénoms séparés par des espaces (standard OpenIDC...
42
@SFLinux
@clementoudot
Lien LL::NG / FranceConnect
● LemonLDAP::NG peut être configuré comme RP OpenID
Connect
● France...
43
@SFLinux
@clementoudot
Merci pour votre attention
Blog : http://slfx.ca/coudot
Twitter : @clementoudot
Prochain SlideShare
Chargement dans…5
×

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

227 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
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
227
Sur SlideShare
0
Issues des intégrations
0
Intégrations
0
Actions
Partages
0
Téléchargements
7
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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

×