4. Clément OUDOT
● Contributeur LemonLDAP::NG depuis 2007,
Leader depuis 2011, en relais de Xavier
GUIMARD
● Leader du projet LDAP Tool Box
● Actif dans les communautés OpenLDAP et
LDAP Synchronization Connector
● Membre de la cellule Identité / Sécurité du
Groupe LINAGORA depuis 2003
17/11/11
4 http://lemonldap-ng.org
5. Quelques mots sur LemonLDAP::NG
● Logiciel libre de WebSSO, contrôle d'accès et
fédération d'identité
● Compatibilité CAS, OpenID et SAML 2.0
● Écrit en Perl, exécuté dans mod_perl d'Apache
● Version 1.1.0 sortie le 8 juillet 2011
● Version 1.2.0 en prévision décembre 2011
17/11/11
5 http://lemonldap-ng.org
7. WebSSO
● SSO signifie « Single Sign On », qui peut se traduire
en français par « authentification unique »
● Le WebSSO se consacre à l'authentification unique
pour les applications Web, c'est-à-dire des applications
client-serveur dont le client est un navigateur Web (IE,
Firefox, etc.)
● Le principe de base est d'intercepter les requêtes entre
le client et le serveur, et indiquer au serveur que le
client est bien authentifié
17/11/11
7 http://lemonldap-ng.org
8. Intérêt du WebSSO : éviter la
multiplication des identités
17/11/11
8 http://lemonldap-ng.org
10. Contrôle d'accès
● Une fois l'utilisateur authentifié, il faut récupérer ses
habilitations :
● Des rôles
● Des groupes
● Des attributs divers (âge, nationalité, etc.)
● Les habilitations donnent accès à des ressources ou
des fonctions
● Plusieurs modèles existent, le principal étant RBAC
(Role Based Access Control)
● Le protocole XACML permet de déléguer les demandes
d'habilitations à des points de décision (PDP)
11. Fédération d'identités
● Notions de cercle de confiance, fournisseur
d'identités (IDP) et fournisseur de service (SP)
● L'utilisateur qui possède plusieurs identités
numériques peut les fédérer au sein d'un cercle
de confiance
● Le résultat visible est l'accès transparent aux
fournisseurs de service, mais d'autres
avantages existent, comme la déconnexion
unique (SLO)
12. Intérêt de la fédération d'identités :
protection de la vie privée
Fournisseur de service Fournisseur d'attribut
Fournisseur d'identité
Fournisseur de service
Interaction utilisateur
Appel distant
14. CAS
● Central Authentication Service
● Documentation du protocole pour 1.0 et 2.0
● Utilisation de tickets de service dans l'URL,
avec validation par un lien dorsal
● Possibilité de tickets proxy
● Pas de partage d'attributs
15. Cinématique CAS
1. Premier accès à l'application
Application « CASsifiée »
3. Transmission du ticket
4. Validation du ticket
2. Authentification sur CAS et récupération de l'identifiant
et récupération d'un ticket
Serveur CAS
16. CAS
● Requête ticket de service CAS :
https://auth.example.com/cas/login?
service=http://auth.example.com/cas.pl
● Réponse ticket de service CAS :
http://auth.example.com/cas.pl?ticket=ST
6096f5d3ddb33df6fd79529e2d626a6d
17. CAS
● Requête validation ticket CAS :
https://auth.example.com/cas/serviceValidate?
service=http://auth.example.com/cas.pl&ticket=ST
6096f5d3ddb33df6fd79529e2d626a6d
● Réponse validation ticket CAS version 1 :
yes
coudot
● Réponse validation ticket CAS version 2 :
<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
<cas:authenticationSuccess>
<cas:user>coudot</cas:user>
</cas:authenticationSuccess>
</cas:serviceResponse>
18. OpenID
● L'identifiant de l'utilisateur contient l'adresse du
service d'authentification
● Aussi basé sur les redirections HTTP
● Permet le partage d'attributs (mais plusieurs
normes possibles...)
● Pas de notion de cercle de confiance
19. Cinématique OpenID
1. Premier accès à l'application
Site Web
4. Réponse OpenID
2. Récupération d'informations OpenID
3. Authentification sur le serveur
OpenID choisi par l'utilisateur 5. Validation de la réponse (facultatif)
Serveur OpenID Serveur OpenID Serveur OpenID
22. SAML
● Security Assertion Markup Language
● XML, XML Security
● Cercle de confiance : enregistrement préalable
des fournisseurs de services et des
fournisseurs d'identités
● Plusieurs méthodes : GET / POST / Artefact
GET / Artefact POST
● Gestion de conditions, contextes
d'authentification, ...
24. Cinématique SAML 2.0
1. Premier accès à l'application
SP SAML
3. Réponse SAML
2. Authentification sur le serveur
SAML choisi par l'utilisateur et
autorisé dans le cercle de
confiance
IDP SAML IDP SAML IDP SAML
28. Différents protocoles pour différents
usages
● CAS : authentification seulement, applications
déjà « CASsifiées »
● OpenID : applications grand public
● SAML : partage d'identité entre organismes
29. Des solutions libres dans le langage qui
vous plaît
● Authentic, Authentic 2 : IDP en Python basé sur
Lasso
● OpenSSO / OpenAM : IDP / SP en Java
● LemonLDAP::NG : IDP / SP en Perl basé sur
Lasso pour la gestion de SAML 2.0
● SimpleSAMLPHP : IDP / SP en PHP
● Shibboleth : IDP / SP en Java