SlideShare une entreprise Scribd logo
[JDLL 2016] OpenID Connect et FranceConnect
2
Clément OUDOT
@clementoudot
http://sflx.ca/coudot
● Créé en 1999
● >100 personnes
● Montréal, Quebec City, Ottawa, Paris
● ISO 9001:2004 / ISO 14001:2008
● contact@savoirfairelinux.com
3
Sommaire
1.France Connect, à quoi ça sert ?
2.Le protocole OpenID Connect
3.Utilisation avec le logiciel libre LemonLDAP::NG
4
À quoi ça sert ?
5
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
6
7
Consulter les points de son permis
8
Site service-public.fr
9
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
10
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)
11
Le protocole
12
13
Rôles
Resource owner
(end-user)
Client
(third-party)
Authorization
Server
Resource
Server
14
Authorization Request
Authorization Grant
Authorization Grant
Access Token
Access Token
Protected Resource
15
Authorization
GET /authorize?
response_type=code&client_id=s6BhdRkqt3&st
ate=xyz&redirect_uri=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttps%2Fclient
%2Eexample%2Ecom%2Fcb
https://client.example.com/cb?
code=SplxlOBeZQQYbYS6WxSbIA
&state=xyz
16
Token
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic
czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-
urlencoded
grant_type=authorization_code&code=SplxlOBe
ZQQYbYS6WxSbIA&redirect_uri=https%3A%2F
%2Fclient%2Eexample%2Ecom%2Fcb
17
Token
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
"example_parameter":"example_value"
}
18
Resource
GET /resource/1 HTTP/1.1
Host: example.com
Authorization: Bearer 2YotnFZFEjr1zCsicMWpAA
19
20
OpenID 1.0 OpenID 2.0 OpenID Connect
21
RPRP OPOP
(1) AuthN Request
(2) AuthN & AuthZ
(3) AuthN Response
(4) UserInfo Request
(5) UserInfo Response
22
OpenID Connect Protocol Suite
Core Discovery
Dynamic Client
Registration
Session
Management
Form Post
Response Mode
Minimal
Dynamic
Complete
23
Underpinnings
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
24
http://jwt.io/
25
RPRP OPOP
http://auth.example.com/oauth2/authorize?
response_type=code
&client_id=lemonldap
&scope=openid%20profile%20email
&redirect_uri=http%3A%2F
%2Fauth.example.com%2Foauth2.pl
%3Fopenidconnectcallback%3D1
&state=ABCDEFGHIJKLMNOPQRSTUVWXXZ
26
27
28
RPRP OPOP
http://auth.example.com/oauth2.pl?
openidconnectcallback=1;
code=f6267efe92d0fc39bf2761c29de44286;
state=ABCDEFGHIJKLMNOPQRSTUVWXXZ
29
RPRP OPOP
POST /oauth2/token HTTP/1.1
Host: auth.example.com
Authorization: Basic xxxx
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&code=f6267efe92d0fc39bf2761c29de44286
&redirect_uri=https%3A%2F%2Fblue-sea-697d.quartiers047.workers.dev%3A443%2Fhttp%2Fauth.example.com
%2Foauth2.pl%3Fopenidconnectcallback%3D1
30
RPRP OPOP
{"id_token" :"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ
9.eyJhY3IiOiJsb2EtMiIsImF1dGhfdGltZSI6MTQzMjEx
MzU5MywiaWF0IjoxNDMyMTEzOTY2LCJhdF9oYXNo
IjoiOWF4enNOaTlwTkRrNXpXZWZLc002QSIsImlzcy
I6Imh0dHA6Ly9hdXRoLmV4YW1wbGUuY29tLyIsIm
V4cCI6IjM2MDAiLCJhenAiOiJsZW1vbmxkYXAiLCJub
25jZSI6IjEyMzQ1Njc4OTAiLCJzdWIiOiJjb3Vkb3RAbG
luYWdvcmEuY29tIiwiYXVkIjpbImxlbW9ubGRhcCJdf
Q==.daYGlzIr37dC1R0biIwdvQLM1LlCMsBFFcEufe
MZtXsZvCiiAm-1LFJwJJJDHFOhd-
WQnc9_GvtP3gTabXB8U4gQ2IW-
bPNLUsjT24njmBPYunHy8YTQ5PV-
QnQI5EK5WrrTS04AF86U5Qu6m3b27yWKFXkIuGI7
EUvvByv8L1Anh1gPG3il5cEOnMFHIUzAaC6PkJiy1sj
SBM53nLRAf9NQ6eux4iCVBIRwl26CCgmRTsTRy-
iTxB3bf0LrILohUlAR_-
HPWGseaIAMvqUpGeaovgGDPt4Zip9KERo7368ykg
Qc09VFlLvZIwyMTWQdVBIYdW0oY6eI9ZHjofn0mg"
, "expires_in" : "3600","access_token" :
"512cdb7b97e073d0656ac9684cc715fe",
"token_type" : "Bearer"}
31
{
"acr": "loa-2",
"auth_time": 1432113593,
"iat": 1432113966,
"at_hash": "9axzsNi9pNDk5zWefKsM6A",
"iss": "http://auth.example.com/",
"exp": "3600",
"azp": "lemonldap",
"nonce": "1234567890",
"sub": "clement@oudot.me",
"aud": [
"lemonldap"
]
}
ID Token payload
32
RPRP OPOP
POST /oauth2/userinfo HTTP/1.1
Host: auth.example.com
Authorization: Bearer 512cdb7b97e073d0656ac9684cc715fe
Content-Type: application/x-www-form-urlencoded
33
RPRP OPOP
{
"name": "Clément OUDOT",
"email": "clement@oudot.me",
"sub": "clement@oudot.me"
}
34
Utilisation avec le
logiciel libre
35
LemonLDAP::NG
● Logiciel libre (GPLv2+) / OW2 consortium
● Authentification unique (SSO), contrôle d'accès
● Fournisseur de Service / Fournisseur d'Identité
● Perl/Apache/CGI/FCGI
● Réinitialisation de mot de passe et création de compte
● http://www.lemonldap-ng.org
36
37
Lien LL::NG / FranceConnect
● LemonLDAP::NG peut être configuré comme SP OpenID
Connect
● France Connect peut être déclaré comme IDP OpenID
Connect
● Procédure détaillée :
http://lemonldap-ng.org/documentation/latest/authopen
idconnect_franceconnect
● Démonstration : https://auth.openid.club/
38
Des questions ?
On dirait qu'ils
ont tout compris

Contenu connexe

PPTX
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Philippe Beraud
 
PDF
Introduction to OpenID Connect
Nat Sakimura
 
PDF
SAML VS OAuth 2.0 VS OpenID Connect
Ubisecure
 
PPTX
Self-issued OpenID Provider_OpenID Foundation Virtual Workshop
Kristina Yasuda
 
PDF
Verifiable credentials explained by CCI
Kaliya "Identity Woman" Young
 
PDF
Verifiable Credentials_Kristina_Identiverse2022_vFIN.pdf
Kristina Yasuda
 
PPTX
Oauth 2.0
Manish Kumar Singh
 
PPTX
OAuth2 + API Security
Amila Paranawithana
 
Vous avez dit protocoles Web d'authentification et d'autorisation ! De quoi p...
Philippe Beraud
 
Introduction to OpenID Connect
Nat Sakimura
 
SAML VS OAuth 2.0 VS OpenID Connect
Ubisecure
 
Self-issued OpenID Provider_OpenID Foundation Virtual Workshop
Kristina Yasuda
 
Verifiable credentials explained by CCI
Kaliya "Identity Woman" Young
 
Verifiable Credentials_Kristina_Identiverse2022_vFIN.pdf
Kristina Yasuda
 
OAuth2 + API Security
Amila Paranawithana
 

Tendances (20)

PPTX
OAuth 2
ChrisWood262
 
PPTX
An Introduction to OAuth 2
Aaron Parecki
 
PPTX
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
Minchul Jung
 
PPTX
ToTP
FORMAEMPLEO
 
PDF
Single sign on using SAML
Programming Talents
 
PDF
Spring security oauth2
axykim00
 
PDF
Session 3 - i4Trust components for Identity Management and Access Control i4T...
FIWARE
 
PPT
OAuth 2.0 and OpenId Connect
Saran Doraiswamy
 
PDF
Securing a Web App with Passwordless Web Authentication
FIDO Alliance
 
PPTX
OpenID Connect: An Overview
Pat Patterson
 
PDF
How to Build Interoperable Decentralized Identity Systems with OpenID for Ver...
Torsten Lodderstedt
 
PPTX
Azure AD B2C Webinar Series: Custom Policies Part 1
Vinu Gunasekaran
 
PDF
Introduction to SAML 2.0
Mika Koivisto
 
PDF
OpenID Connect Explained
Vladimir Dzhuvinov
 
PDF
Getting Started with FIDO2
FIDO Alliance
 
PDF
OpenID Connect 4 SSI (DIFCon F2F)
Torsten Lodderstedt
 
PPT
The Ldap Protocol
Glen Plantz
 
PPTX
OpenId Connect Protocol
Michael Furman
 
PPTX
service DNS.pptx
ChouChou170071
 
PPTX
Getting Started With WebAuthn
FIDO Alliance
 
OAuth 2
ChrisWood262
 
An Introduction to OAuth 2
Aaron Parecki
 
HTTP 완벽 가이드 / 20장 리다이렉션과 부하균형
Minchul Jung
 
Single sign on using SAML
Programming Talents
 
Spring security oauth2
axykim00
 
Session 3 - i4Trust components for Identity Management and Access Control i4T...
FIWARE
 
OAuth 2.0 and OpenId Connect
Saran Doraiswamy
 
Securing a Web App with Passwordless Web Authentication
FIDO Alliance
 
OpenID Connect: An Overview
Pat Patterson
 
How to Build Interoperable Decentralized Identity Systems with OpenID for Ver...
Torsten Lodderstedt
 
Azure AD B2C Webinar Series: Custom Policies Part 1
Vinu Gunasekaran
 
Introduction to SAML 2.0
Mika Koivisto
 
OpenID Connect Explained
Vladimir Dzhuvinov
 
Getting Started with FIDO2
FIDO Alliance
 
OpenID Connect 4 SSI (DIFCon F2F)
Torsten Lodderstedt
 
The Ldap Protocol
Glen Plantz
 
OpenId Connect Protocol
Michael Furman
 
service DNS.pptx
ChouChou170071
 
Getting Started With WebAuthn
FIDO Alliance
 
Publicité

En vedette (20)

PDF
The wonderful story of Web Authentication and Single-Sign On
Clément OUDOT
 
PDF
Présentation de LemonLDAP::NG aux Journées Perl 2016
Clément OUDOT
 
PDF
[OSSParis 2015] The OpenID Connect Protocol
Clément OUDOT
 
PDF
RMLL 2014 - LemonLDAP::NG - What's new under the SSOn
Clément OUDOT
 
PDF
The guide of Security Jerk
Clément OUDOT
 
PDF
[OW2Con 2015] LemonLDAP::NG 2.0 overview
Clément OUDOT
 
PDF
LDAPCon 2011 - The LemonLDAP::NG Project
Clément OUDOT
 
ODP
WebSSO and Access Management with LemonLDAP::NG
Clément OUDOT
 
PDF
Strong Authentication in Web Applications: State of the Art 2011
Sylvain Maret
 
PDF
RMLL 2014 - Site statique avec Templer, Bootstrap et Git
Clément OUDOT
 
PDF
Matinée Pour Comprendre LinID - Intégration du serveur Active Directory avec ...
Clément OUDOT
 
PDF
Matinée Pour Comprendre LinID - Retour d'expérience de l'AFNIC
Clément OUDOT
 
PDF
The OpenID Connect Protocol
Clément OUDOT
 
PDF
Le Guide du Connard du Logiciel Libre
Clément OUDOT
 
PDF
RMLL 2014 - LDAP Synchronization Connector
Clément OUDOT
 
PDF
KR2016 The Free Software Bastard Guide
Clément OUDOT
 
PPTX
Token Based Authentication Systems with AngularJS & NodeJS
Hüseyin BABAL
 
PDF
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
Clément OUDOT
 
PDF
[LDAPCon 2015] The OpenID Connect Protocol
Clément OUDOT
 
PDF
Analyse OpenLDAP logs with ELK
Clément OUDOT
 
The wonderful story of Web Authentication and Single-Sign On
Clément OUDOT
 
Présentation de LemonLDAP::NG aux Journées Perl 2016
Clément OUDOT
 
[OSSParis 2015] The OpenID Connect Protocol
Clément OUDOT
 
RMLL 2014 - LemonLDAP::NG - What's new under the SSOn
Clément OUDOT
 
The guide of Security Jerk
Clément OUDOT
 
[OW2Con 2015] LemonLDAP::NG 2.0 overview
Clément OUDOT
 
LDAPCon 2011 - The LemonLDAP::NG Project
Clément OUDOT
 
WebSSO and Access Management with LemonLDAP::NG
Clément OUDOT
 
Strong Authentication in Web Applications: State of the Art 2011
Sylvain Maret
 
RMLL 2014 - Site statique avec Templer, Bootstrap et Git
Clément OUDOT
 
Matinée Pour Comprendre LinID - Intégration du serveur Active Directory avec ...
Clément OUDOT
 
Matinée Pour Comprendre LinID - Retour d'expérience de l'AFNIC
Clément OUDOT
 
The OpenID Connect Protocol
Clément OUDOT
 
Le Guide du Connard du Logiciel Libre
Clément OUDOT
 
RMLL 2014 - LDAP Synchronization Connector
Clément OUDOT
 
KR2016 The Free Software Bastard Guide
Clément OUDOT
 
Token Based Authentication Systems with AngularJS & NodeJS
Hüseyin BABAL
 
S2LQ - Authentification unique sur le Web avec le logiciel libre LemonLDAP::NG
Clément OUDOT
 
[LDAPCon 2015] The OpenID Connect Protocol
Clément OUDOT
 
Analyse OpenLDAP logs with ELK
Clément OUDOT
 
Publicité

Similaire à [JDLL 2016] OpenID Connect et FranceConnect (12)

PPTX
Paris Web 2015 - France Connect et OpenId Connect
François Petitit
 
PDF
Oauth2 & OpenID Connect
Pascal Flamand
 
PDF
Oauth2 et OpenID Connect
Pascal Flamand
 
PPTX
Delegation d'authentification
Sébastien Brault
 
PDF
Présentation Oauth OpenID
Pascal Flamand
 
PPTX
Introduction oauth 2.0 et openid connect 1.0
Marc-André Tousignant
 
PDF
OIDC jusque dans les applications mobiles
xavierguimard
 
PDF
La Grande Famille OAuth 2.0
Guillaume Sauthier
 
PDF
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...
Cyber Security Alliance
 
PDF
CAS, OpenID, SAML : concepts, différences et exemples
Clément OUDOT
 
PDF
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
Clément OUDOT
 
PDF
Authentification
Youssef Haiti
 
Paris Web 2015 - France Connect et OpenId Connect
François Petitit
 
Oauth2 & OpenID Connect
Pascal Flamand
 
Oauth2 et OpenID Connect
Pascal Flamand
 
Delegation d'authentification
Sébastien Brault
 
Présentation Oauth OpenID
Pascal Flamand
 
Introduction oauth 2.0 et openid connect 1.0
Marc-André Tousignant
 
OIDC jusque dans les applications mobiles
xavierguimard
 
La Grande Famille OAuth 2.0
Guillaume Sauthier
 
ASFWS 2012 - OAuth : un protocole d’autorisation qui authentifie ? par Maxime...
Cyber Security Alliance
 
CAS, OpenID, SAML : concepts, différences et exemples
Clément OUDOT
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
Clément OUDOT
 
Authentification
Youssef Haiti
 

Plus de Clément OUDOT (15)

PDF
[FOSDEM 2019] LemonLDAP::NG 2.0
Clément OUDOT
 
PDF
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
Clément OUDOT
 
PDF
[OW2Con 2018] The FusionIAM project
Clément OUDOT
 
PDF
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
Clément OUDOT
 
PDF
[OSSPARIS17] Le guide du connard du logiciel libre
Clément OUDOT
 
PDF
[OSSPARIS17] Des logiciels libres pour la gestion des identités !
Clément OUDOT
 
PDF
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
Clément OUDOT
 
PDF
[RMLL2017] le guide du connard du logiciel libre
Clément OUDOT
 
PDF
[RMLL2017] LDAPCon 2017
Clément OUDOT
 
PDF
[RMLL2017] Des logiciels libres pour la gestion des identités !
Clément OUDOT
 
PDF
[OW2Con 2017] News from LemonLDAP::NG
Clément OUDOT
 
PDF
[JDLL 2017] Le Guide du Connard du Logiciel Libre
Clément OUDOT
 
PDF
RMLL 2014 - OpenLDAP - Manage password policy
Clément OUDOT
 
PDF
JDLL 2014 - Introduction aux annuaires LDAP
Clément OUDOT
 
PDF
Matinée Pour Comprendre LinID - Mise en place de la fédération des identités...
Clément OUDOT
 
[FOSDEM 2019] LemonLDAP::NG 2.0
Clément OUDOT
 
[FLOSSCON 2019] Gestion des authentifications et des accès avec LemonLDAP::NG...
Clément OUDOT
 
[OW2Con 2018] The FusionIAM project
Clément OUDOT
 
[JDLL 2018] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir l...
Clément OUDOT
 
[OSSPARIS17] Le guide du connard du logiciel libre
Clément OUDOT
 
[OSSPARIS17] Des logiciels libres pour la gestion des identités !
Clément OUDOT
 
[RMLL2017] Templer, Git, Bootstrap, PHP : des outils libres pour concevoir le...
Clément OUDOT
 
[RMLL2017] le guide du connard du logiciel libre
Clément OUDOT
 
[RMLL2017] LDAPCon 2017
Clément OUDOT
 
[RMLL2017] Des logiciels libres pour la gestion des identités !
Clément OUDOT
 
[OW2Con 2017] News from LemonLDAP::NG
Clément OUDOT
 
[JDLL 2017] Le Guide du Connard du Logiciel Libre
Clément OUDOT
 
RMLL 2014 - OpenLDAP - Manage password policy
Clément OUDOT
 
JDLL 2014 - Introduction aux annuaires LDAP
Clément OUDOT
 
Matinée Pour Comprendre LinID - Mise en place de la fédération des identités...
Clément OUDOT
 

[JDLL 2016] OpenID Connect et FranceConnect