Authentification et contrôle d'accès dans les applications web

Documents pareils
Qu'est ce qu'une Fédération d'identités? Définitions Fonctionnement de base Fonctionnement détaillé Les principaux composants

Un exemple d'authentification sécurisée utilisant les outils du Web : CAS. P-F. Bonnefoi

Single Sign On. Nicolas Dewaele. Single Sign On. Page 1. et Web SSO

Single Sign-On open source avec CAS (Central Authentication Service) Vincent Mathieu Pascal Aubry Julien Marchal

Single Sign-On open source avec CAS (Central Authentication Service)

LemonLDAP::NG / SAML2. Xavier GUIMARD (Gendarmerie Nationale) Clément OUDOT (Groupe LINAGORA)

Introduction. aux architectures web. de Single Sign-On

Tour d horizon des différents SSO disponibles

A DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT

JOSY. Paris - 4 février 2010

CAS, la théorie. R. Ferrere, S. Layrisse

Par KENFACK Patrick MIF30 19 Mai 2009

Formation SSO / Fédération

Introduction aux architectures web de Single Sign-on

Gestion des identités

CAS, un SSO web open source. 14h35-15h25 - La Seine A

Single Sign-On open-source avec CAS (Central Authentication Service)

Documentation CAS à destination des éditeurs

Plan. Présentation du logiciel Sympa Architecture La gestion des hôtes virtuels Listes avec inclusion des abonnés Les modules d authentification

Aspects techniques : guide d interfaçage SSO

Ce document décrit une solution de single sign-on (SSO) sécurisée permettant d accéder à Microsoft Exchange avec des tablettes ou smartphones.

ENVOLE 1.5. Calendrier Envole

Drupal et les SSO Nicolas Bocquet < nbocquet@linalis.com >

WebSSO, synchronisation et contrôle des accès via LDAP

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

d authentification SSO et Shibboleth

Guide Share France. Web Single Sign On. Panorama des solutions SSO

Service d'authentification LDAP et SSO avec CAS

Shibboleth. David Verdin - JOSY "Authentification centralisée pour les applications web" - Paris - 4 février mai

Implémentation libre de Liberty Alliance. Frédéric Péters

Sommaire Accès via un formulaire d'identification... 4 Accès en mode SSO... 5 Quels Identifiant / mot de passe utiliser?... 6

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Business et contrôle d'accès Web

EoleSSO EOLE 2.3. Documentation sous licence Creative Commons by-nc-sa - EOLE (http ://eole.orion.education.fr) révisé : Septembre 2014

Groupe Eyrolles, 2004 ISBN :

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

Description de la maquette fonctionnelle. Nombre de pages :

AccessMaster PortalXpert

Introduction à Sign&go Guide d architecture

Authentification EoleSSO

Fédération d'identités et propagation d'attributs avec Shibboleth

Annuaire LDAP, SSO-CAS, ESUP Portail...

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

Solutions d accès sécurisées pour opérer une Market Place Saas multitenante

Cédric Ouvry Bibliothèque nationale de France Liberty Alliance Deployment Workshop Paris December 7, 2005

Solutions de gestion de la sécurité Livre blanc

DMZ... as Architecture des Systèmes d Information

Authentifications à W4 Engine en.net (SSO)

LemonLDAP::NG. LemonLDAP::NG 1.2. Clément OUDOT RMLL 9 juillet 2012

Séminaire EOLE Dijon 23/24 novembre Architecture Envole/EoleSSO

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Protocoles utilisant des mécanismes d'authentification: TACACS+, RADIUS et Kerberos

DESCRIPTION DU PLUGIN D AUTHENTIFICATION AVEC CAS POUR SPIP

educa.id Gestion d'identité et d'accès

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

S28 - La mise en œuvre de SSO (Single Sign On) avec EIM (Enterprise Identity Mapping)

DESCRIPTION DU COMPOSANT

IIS, c est quoi? Installation de IIS Gestion de base de IIS Méthodes d authentification. Edy Joachim,

Les technologies de gestion de l identité

DAVION Didier 33 avenue Paul Cézanne HOUPLINES. Auditeur n NPC URBANISATION ET ARCHITECTURE DES SYSTEMES D INFORMATION DOSSIER SSO

REAUMUR-ACO-PRES. Wifi : Point et perspectives

Samson BISARO Christian MAILLARD

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Vérification intégrée de l'utilisateur Guide d'implémentation client Confidentiel Version 2.9

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

Application web de gestion de comptes en banques

Gestion des Identités : 5 règles d'or. Patrice Kiotsekian Directeur Evidian France

Mémoire de fin d'études

SAML et services hors web

CAHIER DES CHARGES D IMPLANTATION

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

La gestion de l'identité en ligne

Sécurisation des architectures traditionnelles et des SOA

MINISTÈRE DES SOLIDARITÉ ET DE LA COHÉSION SOCIALE

La gestion des identités dans l'éducation Nationale, état des lieux et perspectives

HYPERPLANNING EST UN LOGICIEL INDEX EDUCATION

GLPI (Gestion Libre. 2 ième édition. Nouvelle édition. de Parc Informatique)

Sécurisation d une application ASP.NET

Support de sources d'authentification multiples dans un portail de travail collaboratif

La fédération d identités, pourquoi et comment? Olivier Salaün, RENATER ANF Mathrice 2014

Présenté par : Ould Mohamed Lamine Ousmane Diouf

Installation du point d'accès Wi-Fi au réseau

La double authentification dans SharePoint 2007

PASS v2.0 : solution d authentification unique basée sur les composants Shibboleth Service Provider v2.5.1 et Identity Provider v2.3.

Configuration des ressources dans VMware Workspace Portal

Utiliser Améliorer Prêcher. Introduction à LDAP

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

OpenLDAP, un outil d administration Réseau. Une implémentation d OpenLDAP

Du 03 au 07 Février 2014 Tunis (Tunisie)

Oauth : un protocole d'autorisation qui authentifie?

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

L'intégration de Moodle à l'université Rennes 2 Haute Bretagne

StreamServe Persuasion SP3 StreamStudio

Note Technique Sécurité. Système d'authentification. Authentification hors APN LuxGSM Authentification 3G/APN. Système de notification

Espace Numérique de Travail

Présentation d'un Réseau Escolan

La sécurité dans les grilles

Proxy et reverse proxy. Serveurs mandataires et relais inverses

Transcription:

Authentification et contrôle d'accès dans les applications web

Quelques Rappels Objectifs : contrôler que seulement Certains utilisateurs Exécutent certaines opérations Sur certains objets Trois entités : Sujet : l'entité demandant un accès à une ressource utilisateur, process, thread Opération : l'action demandée lire écrire, modifier, créer un compte, créer un produit... Objet : la ressource fichier, ligne de table...

Identification : Qui est le sujet? Identifiant, @mail, url Authentification : Le sujet est-il réellement celui qu'il prétend être? Mot de passe secret, carte à puce, caractéristique bio-métrique Contrôle d'accès Le sujet est-il autorisé à exécuter une action sur un objet?

Principe Identification/Authentification : Transmission des crédits (credentials) Vérification auprès d'un référentiel d'utilisateurs Chargement d'un profil de l'utilisateur dans une variable de session Contrôle d'accès : Comparaison entre un droit demandé et le contenu du profil en session Au minimum : dans tous les programmes accessibles via une url, Dans toutes les méthodes accédant aux données

Contenu du profil : Identité (ID, nom, groupe, mail...) Droits d'accès : Niveau d'accès (hiérarchie de droits) Liste de droits (à base de clés)

Les modèles Mandatory Access Control (MAC) Sécurité assurée entièrement par le système, sans possibilité de modification par les usagers Politique définie par un administrateur Exemple : SGBD Discretionary Access Control (DAC) Les sujets peuvent modifier ou transmettre les droits d'accès aux objets La politique est définie (en partie) par les usagers Exemple : unix, acl, capabilities

Role-Based Access Control Permissions assignées à des rôles Les usagers sont affectés à un ou plusieurs rôles

Identification/Authentification attributs appli web profil(uid)? uid+crypt(pwd)? uid? référentiel utilisateurs (sql) Https : (uid,pwd) navigateur web Un référentiel par application Stockage et comparaison des pwd cryptés (md5, sha-1) Échange sécurisé entre client et serveur Situation actuelle sur le web

Problème : lorsque plusieurs applications partagent les mêmes utilisateurs Courant sur l'intranet d'1 organisation ajouter/modifier/supprimer un utilisateur : à faire pour chaque appli Utiliser 1 référentiel commun (uid,pwd) Service référentiel utilisateurs (ldap) (uid,pwd) (uid,pwd) appli 1 appli 2 appli 3 (uid,pwd) (uid,pwd) navigateur web

problèmes Authentification auprès de chaque application Mot de passe transmis à chaque application (uid,pwd) Service référentiel utilisateurs (ldap) (uid,pwd) appli 2 (uid,pwd) appli 1 appli 3 (uid,pwd) (uid,pwd) navigateur web

Single Sign-On Une seule authentification pour un groupe d'applications Service référentiel utilisateurs (ldap) appli 1 appli 2 appli 3 serveur authentification (uid,pwd) (uid,pwd) navigateur web

Les principes du SSO web Authentification sur un (ou plusieurs) serveur(s) les applications ne voient pas les mots de passes Redirections HTTP transparentes des applis vers les serveurs des serveurs vers les applis Les redirections transportent de l'information cookies, paramètres url

CAS : Central Authentification Service Mécanisme «SSO» avec 1 serveur centralisé Un client accédant à 1 application est redirigé vers le serveur d'authentification Le serveur fait le contrôle d'identification et d'authentification et : délivre 1 cookie (TGC) conservé par le client, pour les authentifications futures délivre 1 «Ticket de Service» qui est transmis par le client à l'application

l'application vérifie la validité de ce ticket auprès du serveur Lors d'une demande ultérieure, le client transmet le TGC au serveur d'authentification afin d'éviter une nouvelle authentification TGC : utilisable plusieurs fois, durée de vie limitée, opaque (pas d'infos) ST : non rejouable, opaque

1ère authentification directe auprès du serveur serveur authentification https Le serveur retourne 1 formulaire d'authentification navigateur web

1ère authentification directe auprès du serveur référentiel utilisateurs (ldap) serveur authentification (uid,pwd) https TGC TGC : Ticket Granting Cookie opaque navigateur web TGC rejouable permet d'éviter les réauthentifications

Accès à une application après authentification serveur authentification TGC ST 2. navigateur web 3. 4. 1. 5. appli 1 1. accès application 2.redirection vers serveur CAS, transmission du TGC 3.le serveur CAS renvoie 1 ST 4.l'appli transmet le ST au serveur, 5.le serveur retourne un accord ST ST : Service Ticket opaque 1 seule utilisation seule information reçue par l'application

En pratique : accès à une appli AVANT authentification accès à l'appli (uid,pwd) serveur authentification appli 1 redirection vers le serveur CAS transmission du formulaire d'authentification https navigateur web le client envoie ses identifiants/passwd

référentiel utilisateurs (ldap) Le serveur retourne un ST et un TGC serveur authentification ST appli 1 le TGC est conservé par le client https ST TGC ST le ST est transmis à l'application navigateur web TGC Toutes les redirections sont transparentes

CAS-sification d'une application CAS permet de déporter l'authentification gestion et contrôle des mots de passe L'application doit gérer ses utilisateurs et ses groupes d'utilisateurs base privée annuaire partagé niveaux de droits les contrôles d'accès sont réalisés par l'application

L'application doit réaliser 3 opérations : redirection vers le serveur CAS récupération d'un Service Ticket (dans l'url) validation du Service Ticket Librairies de CAS-sification : phpcas, RORCAS... implantent les opérations nécessaires à la cas-sification d 'une appli http://www.ja-sig.org

Cas-sification d'une appli java : http://www.jasig.org/cas/client-integration/java-client CASFilter : filtre d'urls placé dans web.xml Les urls filtrés sont redirigées vers le serveur CAS CAS Tag Library : pour les pages JSP

Authentification «Single Sign-On» le mécanisme OpenID Fédération d'identité : Shibboleth

OpenID : SSO pour sites web Objectif : permettre l'authentification sur plusieurs sites avec le même identifiant/mdp serveurs d'authentification multiples : authentification non centralisée Principe : l'identifiant est une URL permettant d'accéder au serveur d'authentification gcanals.myopenid.com www.loria.fr/~canals https://www.google.com/accounts/o8/id

Fournisseurs/consomateurs OpenID Provider spécialisés : claimid, myopenid, myid.net Provider applicatif yahoo, Blogger, Flickr, Orange sites acceptant l'authentification OpenID dailymotion, sourceforge, wikitravel

Redirection d'urls Identifiant OpenID sur un serveur Provider : gcanals.myopenid.com On peut utiliser n'importe quelle URL pointant vers une page contenant une redirection vers ce provider : www.loria.fr/~canals <link rel= openid.server href= http://www.myopenid.com /> <link rel= openid.delegate href= http://gcanals.myopenid.com/ />

Termes OpenID Consumer : l'application web demandant une authentification OpenID Provider : le fournisseur d'authentification, gérant les utilisateurs/ mots de passe OpenID URL : URL utilisée comme identifiant dirige vers le Provider ou une page redirigeant vers le provider YADIS : protocole de découverte du Provider

Fonctionnement openid URL web App openid Consumer 2. Découverte Provider (YADIS) MAC 3.obtention d'1 clé secrète de cryptage (MAC) serveur authentification openid Provider 1. post OpenID URL ID mac 6. redirection Consumer avec ID signée 5. login 4.redirection provider navigateur web

Programmation du Consumer Fournit 2 urls : Begin : utilisée par l'utilisateur accédant au service traitement des données du formulaire initial, déclenchement du protocole YADIS, redirection vers le provider complete : utilisée par le Provider (redirection) validation de l'authentification, accès au service Librairie PHP, Python, Ruby, Java http://openidenabled.com/php-openid/ Java : openid4java

// Instancier un ConsumerManager public ConsumerManager _manager; public MyConsumer() throws ConsumerException { _manager = new ConsumerManager(); } // Définir une URL de retour (complete) String _returnurl = ''http://my.example.net/openid/complete''; // Créer la requête d'authentification // protocole Yadis List discoveries = manager.discover( usersuppliedstring ); DiscoveryInformation discovered = manager.associate(discoveries); // si nécessaire session.setattribute("discovered", discovered); // obtain a AuthRequest message to be sent to the OpenID provider AuthRequest authreq = manager.authenticate(discovered, _returnurl) // Redirection httpresp.sendredirect(authreq.getdestinationurl(true)); Partie 1 : traitement de l'url openid fournie par l'utilisateur

// Récupération des paramètres de la réponse du provider openid ParameterList openidresp = new ParameterList(request.getParameterMap()); // Récupération de l'information en session DiscoveryInformation discovered = (DiscoveryInformation) session.getattribute("discovered"); // URL de validation utilisée par le provider StringBuffer vurl = request.getrequesturl(); String qs = request.getquerystring(); if (qs!= null && qs.length() > 0) vurl.append("?").append(qs); // Vérification de la réponse VerificationResult v = _consumermanager.verify(vurl.tostring(), openidresp, discovered); // extraction de l'identifiant utilisateur Identifier iduser = verification.getverifiedid(); if (iduser!= null) // SUCCES : utiliser iduser pour retrouver le profil de l'utilisateur dans // le référentiel local mettre ce profil dans une variable de session else // ECHEC de l'authentification Partie 2 : traitement de la réponse du provider

OpenId : SSO pour le web Pas de serveur centralisé : passage à l'échelle Protocole de découverte du serveur d'authentification Offre uniquement l'authentification Chaque application doit gérer ses utilisateurs, ses groupes, ses droits

Shibboleth fédération d'identités, profils Fédérer des identités détenues par plusieurs sources par exemple : Nancy Université Gérer les profils groupes d'utilisateurs communs à plusieurs applications Peut s'appuyer sur un SSO (CAS ou autre)

Sans SSO 7. contrôle des droits contrôle accès profil Fournisseur Identité referentiel utilisateurs web App Fournisseur Service 6. obtention profil nameid service Profil service Auth 5. redirection+ticket 4. authentification 1. accès nameid nameid 2. redirection userid passwd 3. login navigateur web

Avec SSO 7. contrôle des droits contrôle accès web App Fournisseur Service profil 6. obtention profil nameid Fournisseur Identité service Profil service Auth referentiel utilisateurs 5. redirection+ticket nameid nameid userid 1. accès 2. redirection ST navigateur web ST 3. login serveur SSO (CAS) 4. check

Fédération d'identité L'application ne connaît pas le fournisseur d'id. serveur SSO (CAS) web App Fournisseur Service 1. accès WAYF : aiguillage vers un fournisseur d'identité 2. redirection WAYF WAYF Fournisseur Identité (ex. UHP) 3. redirection FI ST Fournisseur Identité (ex. Nancy2) serveur SSO (CAS) navigateur web

Autres systèmes SSO centralisé LemonLDAP::NG LID SSO fédératif Liberty Alliance (IBM, Sun, Novell) WS-Federation (PassPort Microsoft)