La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Rencontres Mondiales Du Logiciel Libre CAS, OpenID, SAML : concepts, différences et exemples Clément OUDOT 13 juillet 2011.

Présentations similaires


Présentation au sujet: "Rencontres Mondiales Du Logiciel Libre CAS, OpenID, SAML : concepts, différences et exemples Clément OUDOT 13 juillet 2011."— Transcription de la présentation:

1 Rencontres Mondiales Du Logiciel Libre CAS, OpenID, SAML : concepts, différences et exemples Clément OUDOT 13 juillet 2011

2 http://lemonldap-ng.org 2 27/09/2016 Sommaire ● WebSSO, contrôle d'accès et fédération d'identité ● Les protocoles ● CAS ● OpenID ● SAML ● Que choisir ?

3 http://lemonldap-ng.org 3 27/09/2016 Présentations

4 http://lemonldap-ng.org 4 27/09/2016 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

5 http://lemonldap-ng.org 5 27/09/2016 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

6 http://lemonldap-ng.org 6 27/09/2016 WebSSO, contrôle d'accès et fédération d'identité

7 http://lemonldap-ng.org 7 27/09/2016 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é

8 http://lemonldap-ng.org 8 27/09/2016 Intérêt du WebSSO : éviter la multiplication des identités

9 Utilisateur Application Web Portail WebSSO 1 2 3 Cinématique simple

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'identité Fournisseur de service Fournisseur d'attribut

13 http://lemonldap-ng.org 13 27/09/2016 Protocoles

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 Serveur CAS Application « CASsifiée » 2. Authentification sur CAS et récupération d'un ticket 3. Transmission du ticket 4. Validation du ticket et récupération de l'identifiant

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 : coudot

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 Serveur OpenID Site Web 3. Authentification sur le serveur OpenID choisi par l'utilisateur 4. Réponse OpenID 5. Validation de la réponse (facultatif) Serveur OpenID 2. Récupération d'informations OpenID

20 Requête 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.c om/%3Fopenid%3D1%26lmAuth%3D2OpenID%26oic.time%3D1304351669 - dab6b201beda30620859&openid.claimed_id=http://auth.vm2.lemonsaml.lina gora.com/openidserver/coudot&openid.identity=http://auth.vm2.lemonsaml.li nagora.com/openidserver/coudot&openid.mode=checkid_setup&openid.real m=http://auth.vm1.lemonsaml.linagora.com/&openid.assoc_handle=1304351 670:2TKNyP679ZL6J1S9i0TH:3e0d127809&openid.sreg.optional=nickname,fullname,email

21 Réponse OpenID http://auth.vm1.lemonsaml.linagora.com/?openid=1&lmAuth=2OpenID&oic.time =1304351669- dab6b201beda30620859&openid.mode=id_res&openid.claimed_id=http://au th.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%3D2 OpenID%26oic.time%3D1304351669- dab6b201beda30620859&openid.response_nonce=2011-05- 02T15:56:03ZW3EeYE&openid.assoc_handle=1304351670:2TKNyP679ZL6 J1S9i0TH:3e0d127809&openid.ns=http://specs.openid.net/auth/2.0&openid. signed=mode,claimed_id,identity,op_endpoint,return_to,response_nonce,as soc_handle&openid.sig=tOO9kHJgQKajdnb6qTLMCSREdO0%3D

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,...

23 SAML, gloire et beauté SAML 1.0 WS-* ID-FF 1.2 ID-WSF 1.2 Shibboleth 1 SAML 2.0 ID-WSF 2.0

24 Cinématique SAML 2.0 1. Premier accès à l'application IDP SAML SP SAML 2. Authentification sur le serveur SAML choisi par l'utilisateur et autorisé dans le cercle de confiance 3. Réponse SAML IDP SAML

25 Requête SAML <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_d7607d551380ac97853a6ff4907c4ef01219be97dd" Version="2.0" IssueInstant="2008-05-27T07:46:06Z" ForceAuthn="true" IsPassive="false" Destination="https://openidp.feide.no/simplesaml/saml2/idp/SSOService.php" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="http://dev.andreas.feide.no/simplesaml/saml2/sp/A ssertionConsumerService.php"> http://dev.andreas.feide.no/simplesaml/saml2/sp/metadata.php <samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:2.0:nameid- format:transient" AllowCreate="true"/>

26 Réponse SAML <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="_162f441d28cff78e3bb1d3c2bf3e48b5ed532605fd" InResponseTo="_ae0216740b5baa4b13c79ffdb2baa82572788fd9a3" Version="2.0" IssueInstant="2008-05-27T07:49:23Z" Destination="https://foodle.feide.no/simplesaml/saml2/sp/AssertionConsumerService.php"> https://openidp.feide.no <samlp:StatusCode xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" Value="urn:oasis:names:tc:SAML:2.0: status:Success "/> <saml:Assertion Version="2.0" ID="pfxb27555d8-8c06-a339-c7ae-f544b2fd1507" IssueInstant="2008-05-27T07:49:23Z"> https://openidp.feide.no <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> WUaqPW4nZ8uPyv+sf8qXsaKhHmk= CRq1VvptjNHenZ5aWkyD6GqQX+XLgNiqElJnyLbMUgiwrFZ5J8IEGtC8h2YiwID15ScxVt6tjQc8R3gXkP967PIlemmhYQ4US7V3oPczu4MECamj+07wAg7BCp05UVU3RI3pvi/2dQGRRX4tlXgkzUMzx8+cBeyZaI/BXKjhKEY= MIICizCCAfQCCQCY8tKaMc0BMjANBgkqhkiG9w0BAQUFADCBiTELMAkGA1UEBhMCTk8xEjAQBgNVBAgTCVRyb25kaGVpbTEQMA4GA1UEChMHVU5JTkVUVDEOMAwGA1UECxMFRmVpZGUxGTAXBgNVBAMTEG 9wZW5pZHAuZmVpZGUubm8xKTAnBgkqhkiG9w0BCQEWGmFuZHJlYXMuc29sYmVyZ0B1bmluZXR0Lm5vMB4XDTA4MDUwODA5MjI0OFoXDTM1MDkyMzA5MjI0OFowgYkxCzAJBgNVBAYTAk5PMRIwEAYDVQQIEwlUcm9uZGhlaW0xED AOBgNVBAoTB1VOSU5FVFQxDjAMBgNVBAsTBUZlaWRlMRkwFwYDVQQDExBvcGVuaWRwLmZlaWRlLm5vMSkwJwYJKoZIhvcNAQkBFhphbmRyZWFzLnNvbGJlcmdAdW5pbmV0dC5ubzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgY EAt8jLoqI1VTlxAZ2axiDIThWcAOXdu8KkVUWaN/SooO9O0QQ7KRUjSGKN9JK65AFRDXQkWPAu4HlnO4noYlFSLnYyDxI66LCr71x4lgFJjqLeAvB/GqBqFfIZ3YK/NrhnUqFwZu63nLrZjcUZxNaPjOOSRSDaXpv1kb5k3jOiSGECAwEAATANBgkq hkiG9w0BAQUFAAOBgQBQYj4cAafWaYfjBU2zi1ElwStIaJ5nyp/s/8B8SAPK2T79McMyccP3wSW13LHkmM1jwKe3ACFXBvqGQN0IbcH49hu0FKhYFM/GPDJcIHFBsiyMBXChpye9vBaTNEBCtU3KjjyG0hRT2mAQ9h+bkPmOvlEo/aH0xR68Z9h w4PF13w== <saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" SPNameQualifier="urn:mace:feide.no:services:no.feide.foodle" >_242f88493449e639aab95dd9b92b1d04234ab84fd8 <saml:SubjectConfirmationData NotOnOrAfter="2008-05-27T07:54:23Z" InResponseTo="_ae0216740b5baa4b13c79ffdb2baa82572788fd9a3" Recipient="https://foodle.feide.no/simplesaml/saml2/sp/AssertionConsumerService.php" /> urn:mace:feide.no:services:no.feide.foodle <saml:AuthnStatement AuthnInstant="2008-05-27T07:49:23Z" SessionIndex="_4f39c931b35a8dd4540b0a6929a361fa134ec8f7b5"> urn:oasis:names:tc:SAML:2.0:ac:classes:Password

27 Que choisir ?

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 (attendez la 3e conférence...) ● OpenSSO / OpenAM : IDP / SP en Java (attendez la 2e conférence...) ● LemonLDAP::NG : IDP / SP en Perl basé sur Lasso pour la gestion de SAML 2.0 ● SimpleSAMLPHP : IDP / SP en PHP

30 http://lemonldap-ng.org 30 27/09/2016 Questions ?


Télécharger ppt "Rencontres Mondiales Du Logiciel Libre CAS, OpenID, SAML : concepts, différences et exemples Clément OUDOT 13 juillet 2011."

Présentations similaires


Annonces Google