Développement web avec
Visual Studio 2012 et ASP.NET
Module 9 – Sécurisation des Applications ASP.NET
Copyright © 2013, Mostefai Mohammed Amine
Module 9 – Sécurisation des Applications ASP.NET
Développement web avec ASP.NET et Visual Studio 2012
Objectifs du module
 Permettre aux développeurs sécuriser les applications web ASP.NET
Copyright © 2013, Mostefai Mohammed Amine
2
Module 9 – Sécurisation des Applications ASP.NET
Développement web avec ASP.NET et Visual Studio 2012
Plan du module
 Mécanismes de sécurisation
 Mise en place des mécanismes de sécurisation
Copyright © 2013, Mostefai Mohammed Amine
3
DéveloppementwebavecASP.NETetVisualStudio2012
Module9-SécurisationdesApplicationsASP.NET
Section 1 : Mécanismes de
sécurisation
Copyright © 2013, Mostefai Mohammed Amine
4
Section 1 : Mécanismes de Sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Introduction
 La sécurité est un des plus grands challenges de l’internet
 La sécurisation consiste à protéger des zones d’applications d’accès non
autorisé
 La sécurisation répond à deux questions essentielles : « qui est qui ? » et
« qui peut faire quoi ? »
 ASP.NET fournir deux mécanismes, l’authentification et l’autorisation qui
permettent de répondre à ces deux questions
Copyright © 2013, Mostefai Mohammed Amine
5
Section 1 : Mécanismes de Sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
L’Authentification
 L’authentification consiste à identifier les utilisateurs par des informations
personnelles telles que le nom d’utilisateur ou l’empreinte digitale
 L’authentification consiste à vérifier que les informations d’identification
fournies par les utilisateurs sont valides
Copyright © 2013, Mostefai Mohammed Amine
6
Section 1 : Mécanismes de Sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
L’Autorisation
 L’autorisation est un processus qui survient après l’authentification
 L’autorisation consiste à vérifier si un utilisateur peut accéder à une
ressource et si oui, avec quel niveau d’accès (contrôle total, lecture
uniquement,…)
Copyright © 2013, Mostefai Mohammed Amine
7
Section 1 : Mécanismes de Sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Mécanismes d’Authentification
Copyright © 2013, Mostefai Mohammed Amine
8
Authentification
Forms
Authentification
Windows
Section 1 : Mécanismes de Sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Authentification « Forms »
 Dans « Forms », toute demande d’authentification renvoie vers une forme
web d’authentification intégrée à l’application
 Pour sauvegarder l’état de l’authentification, une cookie est crée et
rattachée à la réponse d’authentification
 Des composants comme « Login » permettent d’implémenter
l’authentification « Forms »
Copyright © 2013, Mostefai Mohammed Amine
9
Section 1 : Mécanismes de Sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Authentification « Windows »
 Dans ce mode, l’authentification est déléguée au système d’exploitation
« Windows »
 Dans ce mode, c’est IIS qui vérifie l’identité de l’utilisateur en demandant
aux services d’authentification de Windows si l’utilisateur est valide
 Le développeur n’est pas obligé de développer la forme de connexion
 Ce mode s’adapte mieux aux applications intranet qu’aux applications
internet
Copyright © 2013, Mostefai Mohammed Amine
10
Section 1 : Mécanismes de Sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Processus d’authentification dans Forms
Copyright © 2013, Mostefai Mohammed Amine
11
L'ut ilisat eur demande une
ressource sécurisée
[Pr ésence de cookie
d'aut hent ificat ion et
ut ilisat eur valide]
Redirect ion vers la forme
de login
Vérificat ion ut ilisat eur /
mpd ent rés
[MDP et ut ilisat eur
valides]
Créat ion du cookie
d'aut hent ificat ion
Accès à la ressource
accept é
Accès à la ressource
rejet é
NON
OUI
OUI
Section 1 : Mécanismes de Sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Mécanismes d’autorisation
 Pour simplifier la gestion, les utilisateurs sont groupés en rôles
 Chaque rôle peut être constitué de plusieurs utilisateurs et un utilisateur
peut appartenir à plusieurs rôles
 Pour simplifier la gestion, les autorisations sont faites par rôles
 Dans la configuration, les balises « allow » et « deny » permettent de
définir les autorisations des rôles
Copyright © 2013, Mostefai Mohammed Amine
12
DéveloppementwebavecASP.NETetVisualStudio2012
Module9-SécurisationdesApplicationsASP.NET
Section 2 : Mise en place des
mécanismes de sécurisation
Copyright © 2013, Mostefai Mohammed Amine
13
Section 2 : Mise en place des mécanismes de sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Introduction
 La mise en place nécessite de définir des zones facilement identifiables
dans l’application (en utilisant des répertoires par exemples)
 Utiliser la configuration pour définir l’autorisation et l’authentification
 Utilisation des contrôles de login pour faciliter l’intégration des
mécanismes d’authentification
Copyright © 2013, Mostefai Mohammed Amine
14
Section 2 : Mise en place des mécanismes de sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Contrôles de Login
Copyright © 2013, Mostefai Mohammed Amine
15
Contrôle Description
Login Permet aux utilisateurs de s’authentifier (entrer nom d’utilisateur +
mdp) avec tous les variantes qui vont avec (par exemple lien
d’inscription, mot de passe perdu,…)
LoginName Le nom de l’utilisateur actuellement connecté
LoginStatus Affiche un lien d’authentification en mode déconnecté et un lien
de déconnexion en mode connecté
LoginView En utilisant les modèles (templates), affiche des informations
variées selon le statut de connexion (connecté, déconnecté)
CreateUserWizard Assistant de création d’un utilisateur
Section 2 : Mise en place des mécanismes de sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Exemple de configuration d’authentification
<authentication mode="Forms" >
<forms loginUrl="~/Login.aspx">
<credentials passwordFormat="Clear">
<user name="mohammedamine" password="mostefai"/>
</credentials>
</forms>
</authentication>
Copyright © 2013, Mostefai Mohammed Amine
16
Section 2 : Mise en place des mécanismes de sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Fournisseurs
 Pour pouvoir gérer l’authentification, des fournisseurs de services doivent être utilisés
 Un fournisseur de service d’authentification est une classe héritant de
« MembershipProvider »
 Un fournisseur de gestion des rôles est une classe héritant de «RoleProvider »
 ASP.NET fournit deux classes « SqlMembershipProvider » et « SqlRoleProvider »
simplifiant la gestion des utilisateurs et des rôles
 L’utilisation des fournisseurs SQL nécessite la création de la base « ASPNETDB » par
l’outil aspnet_regsql
 L’utilisateur peut créer ses propres fournisseurs en créant des classes héritant de
« MembershipProvider » et « RoleProvider »
Copyright © 2013, Mostefai Mohammed Amine
17
Section 1 : Mécanismes de Sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Tutoriel 9.1 : Mise en place de l’authentification et des
autorisations
• Lancer Tutoriel 9.1, étape 1 - 5
Copyright © 2013, Mostefai Mohammed Amine
18
Section 2 : Mise en place des mécanismes de sécurisation
Développement web avec ASP.NET et Visual Studio 2012
Module9-SécurisationdesApplicationsASP.NET
Accès par code
 Pour accéder à l’utilisateur authentifié en cours, utiliser la propriété
« User »
 Pour connaître si l’utilisateur appartient à un rôle, utiliser « IsInRole »
Copyright © 2013, Mostefai Mohammed Amine
19

Sécurisation des applications ASP.NET

  • 1.
    Développement web avec VisualStudio 2012 et ASP.NET Module 9 – Sécurisation des Applications ASP.NET Copyright © 2013, Mostefai Mohammed Amine
  • 2.
    Module 9 –Sécurisation des Applications ASP.NET Développement web avec ASP.NET et Visual Studio 2012 Objectifs du module  Permettre aux développeurs sécuriser les applications web ASP.NET Copyright © 2013, Mostefai Mohammed Amine 2
  • 3.
    Module 9 –Sécurisation des Applications ASP.NET Développement web avec ASP.NET et Visual Studio 2012 Plan du module  Mécanismes de sécurisation  Mise en place des mécanismes de sécurisation Copyright © 2013, Mostefai Mohammed Amine 3
  • 4.
    DéveloppementwebavecASP.NETetVisualStudio2012 Module9-SécurisationdesApplicationsASP.NET Section 1 :Mécanismes de sécurisation Copyright © 2013, Mostefai Mohammed Amine 4
  • 5.
    Section 1 :Mécanismes de Sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Introduction  La sécurité est un des plus grands challenges de l’internet  La sécurisation consiste à protéger des zones d’applications d’accès non autorisé  La sécurisation répond à deux questions essentielles : « qui est qui ? » et « qui peut faire quoi ? »  ASP.NET fournir deux mécanismes, l’authentification et l’autorisation qui permettent de répondre à ces deux questions Copyright © 2013, Mostefai Mohammed Amine 5
  • 6.
    Section 1 :Mécanismes de Sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET L’Authentification  L’authentification consiste à identifier les utilisateurs par des informations personnelles telles que le nom d’utilisateur ou l’empreinte digitale  L’authentification consiste à vérifier que les informations d’identification fournies par les utilisateurs sont valides Copyright © 2013, Mostefai Mohammed Amine 6
  • 7.
    Section 1 :Mécanismes de Sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET L’Autorisation  L’autorisation est un processus qui survient après l’authentification  L’autorisation consiste à vérifier si un utilisateur peut accéder à une ressource et si oui, avec quel niveau d’accès (contrôle total, lecture uniquement,…) Copyright © 2013, Mostefai Mohammed Amine 7
  • 8.
    Section 1 :Mécanismes de Sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Mécanismes d’Authentification Copyright © 2013, Mostefai Mohammed Amine 8 Authentification Forms Authentification Windows
  • 9.
    Section 1 :Mécanismes de Sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Authentification « Forms »  Dans « Forms », toute demande d’authentification renvoie vers une forme web d’authentification intégrée à l’application  Pour sauvegarder l’état de l’authentification, une cookie est crée et rattachée à la réponse d’authentification  Des composants comme « Login » permettent d’implémenter l’authentification « Forms » Copyright © 2013, Mostefai Mohammed Amine 9
  • 10.
    Section 1 :Mécanismes de Sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Authentification « Windows »  Dans ce mode, l’authentification est déléguée au système d’exploitation « Windows »  Dans ce mode, c’est IIS qui vérifie l’identité de l’utilisateur en demandant aux services d’authentification de Windows si l’utilisateur est valide  Le développeur n’est pas obligé de développer la forme de connexion  Ce mode s’adapte mieux aux applications intranet qu’aux applications internet Copyright © 2013, Mostefai Mohammed Amine 10
  • 11.
    Section 1 :Mécanismes de Sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Processus d’authentification dans Forms Copyright © 2013, Mostefai Mohammed Amine 11 L'ut ilisat eur demande une ressource sécurisée [Pr ésence de cookie d'aut hent ificat ion et ut ilisat eur valide] Redirect ion vers la forme de login Vérificat ion ut ilisat eur / mpd ent rés [MDP et ut ilisat eur valides] Créat ion du cookie d'aut hent ificat ion Accès à la ressource accept é Accès à la ressource rejet é NON OUI OUI
  • 12.
    Section 1 :Mécanismes de Sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Mécanismes d’autorisation  Pour simplifier la gestion, les utilisateurs sont groupés en rôles  Chaque rôle peut être constitué de plusieurs utilisateurs et un utilisateur peut appartenir à plusieurs rôles  Pour simplifier la gestion, les autorisations sont faites par rôles  Dans la configuration, les balises « allow » et « deny » permettent de définir les autorisations des rôles Copyright © 2013, Mostefai Mohammed Amine 12
  • 13.
    DéveloppementwebavecASP.NETetVisualStudio2012 Module9-SécurisationdesApplicationsASP.NET Section 2 :Mise en place des mécanismes de sécurisation Copyright © 2013, Mostefai Mohammed Amine 13
  • 14.
    Section 2 :Mise en place des mécanismes de sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Introduction  La mise en place nécessite de définir des zones facilement identifiables dans l’application (en utilisant des répertoires par exemples)  Utiliser la configuration pour définir l’autorisation et l’authentification  Utilisation des contrôles de login pour faciliter l’intégration des mécanismes d’authentification Copyright © 2013, Mostefai Mohammed Amine 14
  • 15.
    Section 2 :Mise en place des mécanismes de sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Contrôles de Login Copyright © 2013, Mostefai Mohammed Amine 15 Contrôle Description Login Permet aux utilisateurs de s’authentifier (entrer nom d’utilisateur + mdp) avec tous les variantes qui vont avec (par exemple lien d’inscription, mot de passe perdu,…) LoginName Le nom de l’utilisateur actuellement connecté LoginStatus Affiche un lien d’authentification en mode déconnecté et un lien de déconnexion en mode connecté LoginView En utilisant les modèles (templates), affiche des informations variées selon le statut de connexion (connecté, déconnecté) CreateUserWizard Assistant de création d’un utilisateur
  • 16.
    Section 2 :Mise en place des mécanismes de sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Exemple de configuration d’authentification <authentication mode="Forms" > <forms loginUrl="~/Login.aspx"> <credentials passwordFormat="Clear"> <user name="mohammedamine" password="mostefai"/> </credentials> </forms> </authentication> Copyright © 2013, Mostefai Mohammed Amine 16
  • 17.
    Section 2 :Mise en place des mécanismes de sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Fournisseurs  Pour pouvoir gérer l’authentification, des fournisseurs de services doivent être utilisés  Un fournisseur de service d’authentification est une classe héritant de « MembershipProvider »  Un fournisseur de gestion des rôles est une classe héritant de «RoleProvider »  ASP.NET fournit deux classes « SqlMembershipProvider » et « SqlRoleProvider » simplifiant la gestion des utilisateurs et des rôles  L’utilisation des fournisseurs SQL nécessite la création de la base « ASPNETDB » par l’outil aspnet_regsql  L’utilisateur peut créer ses propres fournisseurs en créant des classes héritant de « MembershipProvider » et « RoleProvider » Copyright © 2013, Mostefai Mohammed Amine 17
  • 18.
    Section 1 :Mécanismes de Sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Tutoriel 9.1 : Mise en place de l’authentification et des autorisations • Lancer Tutoriel 9.1, étape 1 - 5 Copyright © 2013, Mostefai Mohammed Amine 18
  • 19.
    Section 2 :Mise en place des mécanismes de sécurisation Développement web avec ASP.NET et Visual Studio 2012 Module9-SécurisationdesApplicationsASP.NET Accès par code  Pour accéder à l’utilisateur authentifié en cours, utiliser la propriété « User »  Pour connaître si l’utilisateur appartient à un rôle, utiliser « IsInRole » Copyright © 2013, Mostefai Mohammed Amine 19