SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG

download SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG

If you can't read please download the document

Transcript of SAML, Open ID et CAS dans un seul WebSSO : LemonLDAP::NG

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

Twitter

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