Top Banner
@SFLinux @clementoudot Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
43

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

Apr 12, 2017

Download

Technology

Clément OUDOT
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG

@SFLinux@clementoudot

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

Page 2: S2LQ - 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, Quebec, Toronto, Paris● ISO 9001:2004 / ISO 14001:2008● [email protected]

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

3@SFLinux@clementoudot

Authentification unique / WebSSO

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

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

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

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

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

6@SFLinux@clementoudot

Application Web Portail d'authentification

Premier accèsRedirection pour authentification

Génération d'un jeton

Envoi du jeton

Validation du jetonRécupération de l'identité

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

7@SFLinux@clementoudot

Présentation de LemonLDAP::NG

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

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

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

9@SFLinux@clementoudot

Historique

2003 2006 2010 2016

Création du projet

VersionNG

SAMLCAS

OpenID

OpenID Connect

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

10@SFLinux@clementoudot

Composants

CommonCommon

ManagerManager HandlerHandler

PortalPortal

Interface de configuration

Formulaires et menu

Protection des applications

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

13@SFLinux@clementoudot

Modules d'authentification

LDAPLDAPADAD

ApacheApache SAMLSAML

CASCAS RadiusRadius OpenIDOpenID

WebIDWebID

BrowserBrowserIDID

DBIDBI

YubikeyYubikey

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

14@SFLinux@clementoudot

Passerelle multi-protocoles

SAMLSAMLCASCAS

OpenID OpenID ConnectConnect

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

15@SFLinux@clementoudot

Fonctions « self service »

Changement Changement de mot de de mot de

passepasse

RéinitialisatiRéinitialisation de mot on de mot de passede passe

Création Création de de

comptecompte

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

16@SFLinux@clementoudot

Références d’utilisation de LemonLDAP::NG

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

17@SFLinux@clementoudot

Gendarmerie Nationale

● 100 000 utilisateurs● 300 applications

protégées● Plus de 25 millions de

requêtes par jour

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

18@SFLinux@clementoudot

Nantes Métropole

● Plus de 110 000 utilisateurs (comptes citoyens)

● 70 applications/services en ligne protégés

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

19@SFLinux@clementoudot

Air Corsica

● 300 utilisateurs● 10 applications

protégées, dont Microsoft SharePoint et Outlook Web Access

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

20@SFLinux@clementoudot

Ville de Villeurbanne

● 1000 utilisateurs● 10 applications

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

21@SFLinux@clementoudot

Implémentation des standards

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

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

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

23@SFLinux@clementoudot

Client CAS Serveur CAS

Premier accèsRedirection pour authentification

Génération d'un ST

Envoi du ST

Validation du jeton

Récupération de l'identité

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

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

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

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

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

26@SFLinux@clementoudot

Fournisseur de service (SP) Fournisseur d'identité (IDP)

Premier accèsChoix de l'IDP

Requête d'authentification

Réponse d'authentificationEnvoi de

la réponse

Validation de la signatureLecture de l'assertion

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

27@SFLinux@clementoudot

11

22

IdentityProvider

ServiceProvider

http://auth.example.com/saml/singleSignOn?IDPInitiated=1&spConfKey=myserviceprovider

SSO initié par l'IDP

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

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

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

29@SFLinux@clementoudot

OpenID 1.0 OpenID 2.0 OpenID Connect

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

30@SFLinux@clementoudot

Partie de confiance (RP) Fournisseur OpenID (OP)

Premier accèsChoix de l'OP

Requête d'authentification

Création du JWT

Envoi du JWT

Validation de la signatureLecture du JWT

Lecture du UserInfo

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

31@SFLinux@clementoudot

Spécification du protocole

CoreDiscovery Dynamic Client

Registration

Session Management

Form Post Response Mode

MinimalDynamic

Complete

● Publiées sur le site de la fondation OpenID

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

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

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

33@SFLinux@clementoudot

http://jwt.io/

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

34@SFLinux@clementoudot

L’exemple de France Connect

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

35

À quoi ça sert ?

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

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

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

37

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

38

Consulter les points de son permis

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

39

Site service-public.fr

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

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 stringle 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

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

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)

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

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/authopenidconnect_franceconnect

● Démonstration : https://auth.openid.club/

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

43@SFLinux@clementoudot

Merci pour votre attention

Blog : http://slfx.ca/coudotTwitter : @clementoudot