Vous êtes sur la page 1sur 6

Scurisation dune application ASP.

NET

1- Authentification
Lauthentification est un processus essentiel la scurisation dune application internet. Ce processus
permet dauthentifier lentit lorigine dune requte et de lidentifier auprs dune autorit.
Lautorisation dtermine quelles sont les ressources accessibles lentit tant lorigine de la
requte.
IIS et ASP.NET mettent la disposition des dveloppeurs plusieurs systmes d'authentification. Nous
ferons abstraction dans cet article de la configuration de lauthentification sous IIS (Authentification
anonyme, Authentification de base, Authentification Digest, Authentification Windows).
Pour des informations dtailles nhsitez pas me contacter: arthur[at]supinfo.com.
Principe de fonctionnement utilisant linteraction IIS / Framework .NET :
Adresse IP et domaine
autoriss
Utilisateur connu
(authentifi)
Client
IIS
Accs refus
NON
OUI
NON
ASP.NET
Lancement de
lapplication
ASP.NET
Utilisateur valide connu et autoris
avec prise en compte de lemprunt
didentit sil est activ
NON
ACCES
AUTORISE
OUI

ASP.NET permet lauthentification grce des fournisseurs dauthentification qui
contiennent le code ncessaire pour authentifier et identifier un utilisateur.
ASP.NET supporte quatre types de fournisseurs dauthentification:
forms, windows (par dfaut), passport, none (authentification personnalise).
Les diffrents types dauthentification ASP.NET
A- Authentification par Windows
Ce principe dauthentification permet de traiter lutilisateur fourni par IIS comme un
utilisateur authentifi dans une application ASP.NET. Cette mthode d'authentification affecte
certes la valeur de la proprit User d'un WindowsIdentity fourni par IIS, mais il ne modifie en
aucun cas l'identit Windows fournie par le Systme. Or, les vrifications des autorisations
d'accs se basent sur cette identit Windows. Il est donc important de calquer l'identit
Windows ASP.NET sur l'identit Windows IIS en activant l'emprunt d'identit (identity avec
lattribut impersonate actif).
Configuration :

<system.web>
<authentication mode = "Windows" />
<identity impersonate = "true" />
</system.web>

B- Authentification par Forms
Utilisateur connu
Client
ASP.NET
NON
OUI
NON
Formulaire de
login
Envoi dun cookie stock au
niveau du navigateur du
client
Utilisateur autoris
Refus
Affichage de la
page
OUI
Redirection

Lauthentification par Forms est la mthode la plus couramment utilise sur internet.
Cette mthode dauthentification permet de grer lidentification dun utilisateur par
un formulaire web. Lapplication ASP.NET stock les informations utilisateur dans un
cookie. Ce type dauthentification permet de stocker ses propres informations client.
Ce type dauthentification peut tre mis en place trs rapidement en utilisant le
framework membership intgr au Framework .NET
Configuration :

<system.web>
<authentication mode = "Forms">
<forms name=".ASPXFORMSAUTH" loginUrl="Login.aspx" />
</authentication>
</system.web>

C- Authentification par Passport
Serveur Central
PASSPORT.NET
Client
Utilisateur
authentifi ?
Redirection
Non
Redirection
Oui
Affichage des
donnes

Cette mthode dauthentification est un service qui permet aux utilisateurs de crer un
compte unique scuris permettant laccs tous les services et sites Web .NET
Passport. Ces sites reposent sur le serveur .NET Passport qui soccupe de
lauthentification. Ainsi vous pouvez tablir une connexion scurise (SSL) entre
votre site et le serveur central .NET Passport. Tout en permettant aux utilisateurs de
conserver leur compte Passport, dun site lautre. La communication ne seffectue
pas en temps rel entre le serveur central (.Net Passport) et votre site Web. Les
changes dinformations son grs au niveau du navigateur du client en utilisant une
redirection HTTP.
Configuration :

<system.web>
<authentication mode = "Passport" />
</system.web>

2- Gestion simplifie des comptes utilisateur

Le Framework .Net met disposition des dveloppeurs des outils de gestion utilisateur
trs puissants qui permettent de grer la cration de compte, lidentification et la
rinitialisation de mot de passe en quelques clicks.

A- Framework Membership

Membership est un Framework grant labstraction des donnes utilisateur. Cet
outil permet dinteragir avec la base de donnes utilisateur en fournissant une
classe et un ensemble de mthodes essentielles pour la gestion de comptes. Pour
rcuprer les donnes utilisateur, la classe Membership fait appel des providers.

Le Framework .NET inclut un provider (SqlMembershipProvider) qui permet de
stocker les informations utilisateur dans une base de donnes (par dfaut configur
pour SQL Server) ainsi quun provider (ActiveDirectoryMembershipProvider) qui
permet de stocker les informations utilisateur sur un serveur Active Directory. Un
provider personnalis peut par ailleurs tre mis en place afin qu'il communique
avec une autre source de donnes. Par dfaut, le provider utilis par Membership
est SqlMembershipProvider.

Configuration :
<membership defaultProvider = "Prov">
<providers>
<add name=" Prov" type="System.Web.Security.SqlMemberShipProvider, System.Web,
Version=2.0.0.0, Culture=neutral" connectionStringName="MySqlServer" />
</providers>
</membership>


B- Contrles prdfinis

Un contrle serveur est une entit issue de System.Web.UI.Control permettant de
gnrer du code HTML. Des contrles serveur spcifiques gestion de comptes
utilisateur sont fournis par le framework.net (LoginView, Login,
PasswordRecovery, ).
Ces contrles permettent dautomatiser les formulaires de gestion de comptes
utilisateur.


3- Rles et Profiles utilisateur

A- Rles

Les rles permettent de dfinir des types dutilisateur, ainsi il devient possible de lier
laccs certaines parties dun site certains types dutilisateur.
Lutilisation de rles peut se faire dans le cadre dune authentification forms ou
dune authentification windows. Lauthentification windows est donc trs utile
dans le cadre dun intranet, alors quune authentification par forms savre
beaucoup plus cohrante dans le cadre dun site internet.

Configuration:
- Les providers
<system.web>
<membership defaultProvider="RoleProv" enable="true" cacheRolesInCookie = "true">
<roleManager enabled="true" />
<providers>
<add name="RoleProv" type="System.Web.Security.SqlRoleProvider,
System.Web, Version=2.0.0.0, Culture=neutral" connectionStringName="MySqlServer" />
</providers>
</membership>
</system.web>


- Les restrictions gnrales
<location path="edition.aspx">
<system.web>
<authorization>
<allow roles="editeur" />
<deny users="?" />
</authorization>
</system.web>
</location>

- Affectation et test dun rle
if(!Roles.IsUserInRole("editeur"))
Roles.AddUserToRole(User.Identity.Name,"editeur");


B- Profiles utilisateur

Les profiles utilisateur peuvent savrer trs utiles dans le cadre de la
personnalisation dun site web (design). En effet les profiles permettent de stocker
dans un cookie des informations spcifiques un utilisateur pour un rle donn.

Configuration :

Profile anonyme:
<anonymousIdentification enabled="true" cookieless="AutoDetect" />

Proprits dun profile:
<system.web>
<profile enabled="true">
<properties>
<add name="couleur" type="System.String" />
</properties>
</profile>
</system.web>

Gestion des profiles dans le code-Behind:
ProfileCommon currentProfile = Profile.GetProfile(e.AnonymousID);
if (currentProfile != null)
Profile.color = currentProfile.Color;




























Arthur Tarlay
Laboratoire des technologies WEB
SUPINFO AQUITAINE
IS1 Promotion 2008