If you can't read please download the document
Upload
clement-oudot
View
4.610
Download
1
Embed Size (px)
Citation preview
SAML, OpenID et CAS dans un seul WebSSO : LemonLDAP::NG
SAML, OpenID et CAS dans un seul WebSSO: LemonLDAP::NG
Clment OUDOT
Architecte LinID
[email protected]
Sommaire
Prsentations
Le WebSSO
Les protocoles:CAS
OpenID
SAML
LemonLDAP::NG
Prsentations
LINAGORA: qui sommes nous?
Nos principaux clients
Mission : Logiciels et services Open source pour russir les grands projets du libreFonde : Mai 2000Capital: Capital priv (principalement dtenu par les fondateurs)Nombre d'ingnieurs : 150
LINAGORA: nos mtiers
Clment OUDOT
Contributeur LemonLDAP::NG depuis 2007, Leader depuis 2011, en relai de Xavier GUIMARD
Leader du projet LDAP Tool Box
Actif dans les communauts OpenLDAP et LDAP Synchronization Connector
Membre de la cellule Identit / Scurit du Groupe LINAGORA depuis 2003
Collabore au produit LINAGORA LinID
Le WebSSO
Dfinition du WebSSO
SSO signifie Single Sign On, qui peut se traduire en franais 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 requtes entre le client et le serveur, et indiquer au serveur que le client est bien authentifi
Comment a marche?
Utilisateur
Utilisateur
Application Web
Portail WebSSO
123
SSO par dlgation
SSO par mandataire inverse (reverse proxy)
Les protocoles
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
CAS
CAS
Requte ticket de service CAS:
https://auth.example.com/cas/login?service=http://auth.example.com/cas.pl Rponse ticket de service CAS:
http://auth.example.com/cas.pl?ticket=ST-6096f5d3ddb33df6fd79529e2d626a6d Requte validation ticket CAS:
https://auth.example.com/cas/serviceValidate?service=http://auth.example.com/cas.pl&ticket=ST-6096f5d3ddb33df6fd79529e2d626a6dRponse validation ticket CAS:
coudot
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
OpenID
Requte OpenID
https://auth.vm2.lemonsaml.linagora.com/openidserver/?openid.ns=http://specs.openid.net/auth/2.0&openid.return_to=http://auth.vm1.lemonsaml.linagora.com/%3Fopenid%3D1%26lmAuth%3D2OpenID%26oic.time%3D1304351669-dab6b201beda30620859&openid.claimed_id=http://auth.vm2.lemonsaml.linagora.com/openidserver/coudot&openid.identity=http://auth.vm2.lemonsaml.linagora.com/openidserver/coudot&openid.mode=checkid_setup&openid.realm=http://auth.vm1.lemonsaml.linagora.com/&openid.assoc_handle=1304351670:2TKNyP679ZL6J1S9i0TH:3e0d127809&openid.sreg.optional=nickname,fullname,email
Rponse OpenID
http://auth.vm1.lemonsaml.linagora.com/?openid=1&lmAuth=2OpenID&oic.time=1304351669-dab6b201beda30620859&openid.mode=id_res&openid.claimed_id=http://auth.vm2.lemonsaml.linagora.com/openidserver/coudot&openid.identity=http://auth.vm2.lemonsaml.linagora.com/openidserver/coudot&openid.op_endpoint=https://auth.vm2.lemonsaml.linagora.com/openidserver/&openid.return_to=http://auth.vm1.lemonsaml.linagora.com/%3Fopenid%3D1%26lmAuth%3D2OpenID%26oic.time%3D1304351669-dab6b201beda30620859&openid.response_nonce=2011-05-02T15:56:03ZW3EeYE&openid.assoc_handle=1304351670:2TKNyP679ZL6J1S9i0TH:3e0d127809&openid.ns=http://specs.openid.net/auth/2.0&openid.signed=mode,claimed_id,identity,op_endpoint,return_to,response_nonce,assoc_handle&openid.sig=tOO9kHJgQKajdnb6qTLMCSREdO0%3D
SAML
Security Assertion Markup Language
Scurit
XML, XML Security
Scurit
Cercle de confiance: enregistrement pralable des fournisseurs de services et des fournisseurs d'identits
Scurit
Plusieurs mthodes: GET / POST / Artefact GET / Artefact POST
Scurit
SAML
Requte SAML
http://dev.andreas.feide.no/simplesaml/saml2/sp/metadata.php
Rponse SAML
https://openidp.feide.no https://openidp.feide.no WUaqPW4nZ8uPyv+sf8qXsaKhHmk= CRq1VvptjNHenZ5aWkyD6GqQX+XLgNiqElJnyLbMUgiwrFZ5J8IEGtC8h2YiwID15ScxVt6tjQc8R3gXkP967PIlemmhYQ4US7V3oPczu4MECamj+07wAg7BCp05UVU3RI3pvi/2dQGRRX4tlXgkzUMzx8+cBeyZaI/BXKjhKEY= MIICizCCAfQCCQCY8tKaMc0BMjANBgkqhkiG9w0BAQUFADCBiTELMAkGA1UEBhMCTk8xEjAQBgNVBAgTCVRyb25kaGVpbTEQMA4GA1UEChMHVU5JTkVUVDEOMAwGA1UECxMFRmVpZGUxGTAXBgNVBAMTEG9wZW5pZHAuZmVpZGUubm8xKTAnBgkqhkiG9w0BCQEWGmFuZHJlYXMuc29sYmVyZ0B1bmluZXR0Lm5vMB4XDTA4MDUwODA5MjI0OFoXDTM1MDkyMzA5MjI0OFowgYkxCzAJBgNVBAYTAk5PMRIwEAYDVQQIEwlUcm9uZGhlaW0xEDAOBgNVBAoTB1VOSU5FVFQxDjAMBgNVBAsTBUZlaWRlMRkwFwYDVQQDExBvcGVuaWRwLmZlaWRlLm5vMSkwJwYJKoZIhvcNAQkBFhphbmRyZWFzLnNvbGJlcmdAdW5pbmV0dC5ubzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAt8jLoqI1VTlxAZ2axiDIThWcAOXdu8KkVUWaN/SooO9O0QQ7KRUjSGKN9JK65AFRDXQkWPAu4HlnO4noYlFSLnYyDxI66LCr71x4lgFJjqLeAvB/GqBqFfIZ3YK/NrhnUqFwZu63nLrZjcUZxNaPjOOSRSDaXpv1kb5k3jOiSGECAwEAATANBgkqhkiG9w0BAQUFAAOBgQBQYj4cAafWaYfjBU2zi1ElwStIaJ5nyp/s/8B8SAPK2T79McMyccP3wSW13LHkmM1jwKe3ACFXBvqGQN0IbcH49hu0FKhYFM/GPDJcIHFBsiyMBXChpye9vBaTNEBCtU3KjjyG0hRT2mAQ9h+bkPmOvlEo/aH0xR68Z9hw4PF13w== _242f88493449e639aab95dd9b92b1d04234ab84fd8 urn:mace:feide.no:services:no.feide.foodle urn:oasis:names:tc:SAML:2.0:ac:classes:Password
Historique
LemonLDAP a t cr en 2003 par Eric GERMAN (Ministre des Finances, France) pour remplace Novell iChain (Novell llevon Lemon)
Comme Novell ou SiteMinder, LemonLDAP utilise des en-ttes HTTP pour propager l'identit de l'utilisateur
LemonLDAP::NG est une rcriture complte de LemonLDAP par Xavier GUIMARD (Gendarmerie Nationale, France) en 2005
Thomas CHEMINEAU et Clment OUDOT compltent l'quipe de dveloppement
Parlons technique
LemonLDAP::NG repose sur trois composants:Le portail (Portal): interface d'authentification, menu des applications, changement de mot de passe
Le handler (Handler): agent ralisant le contrle des accs aux applications Web
Le manager (Manager): interface de configuration, explorateur de sessions
Tous les composants sont crits en Perl
Ncessite Apache et mod_perl
Vue macroscopique
Cinmatique principale
Les phases d'authentification
LemonLDAP::NG dcoupe l'authentification en plusieurs phases:Vrification des sessions existantes
Rcupration des donnes d'authentification
Recherche de l'utilisateur
Authentification
Stockage des donnes dans la session
criture du cookie
Redirection (menu ou application demande)
Les diffrentes bases
Plusieurs bases sont utilises:Authentification: comment vrifier les donnes d'authentification
Utilisateurs: o trouver les donnes de l'utilisateur
Mots de passe: o changer le mot de passe de l'utilisateur
Exemple d'utilisation: authentification par Kerberos, donnes de l'utilisateur dans un annuaire LDAP
Mthodes d'authentification
LemonLDAP::NG supporte de nombreuses mthodes d'authentification:LDAP
Database
SSL X509
Apache built-in modules (Kerberos, OTP, ...)
SAML 2.0
OpenID
CAS
Rendre mon application compatible
LemonLDAP::NG est trs peu intrusif:Pas de module importer dans le code
Pas de WebService appeler
Simplement lire une en-tte HTTP!
Une application qui utilise l'authentification Apache (REMOTE_USER) est compatible!
Adaptations possibles de l'application:Auto-cration du compte local de l'utilisateur
Suppression du formulaire d'authentification
Support CAS, OpenID et SAML
LemonLDAP::NG peut dlguer son authentification CAS, OpenID et SAML (avec rcupration d'attributs en OpenID et SAML)
LemonLDAP::NG peut fournir l'identit par CAS, OpenID et SAML (avec fourniture d'attributs pour OpenID et SAML)
LemonLDAP::NG peut agir comme un pont entre tous ces protocoles
Exemple d'intgration avec Google Apps
Questions?
Merci de votre attention
Contact : LINAGORA Sige social80, rue Roque de Fillol92800 PUTEAUXFRANCETl. : 0 810 251 251 (tarif local)Fax : +33 (0)1 46 96 63 64Mail : [email protected] : www.linagora.com
Photos de la prsentationtires de Flickr (Creative Commons)
WWW.LINAGORA.COM
Column 1
20064
20078
200810.4
200911
201013