Sommaire: Gestion de l’authentification et des autorisations
Introduction
Authentification
Contrôles implémentés
Partie Login
La classe Membership
La classe Roles
Outil d’administration
Les Authentification
Windows
Formulaire
Passport Microsoft
Emprunt d’identité
Gestion des autorisations
Autoriser / refuser l’accès
Appliquer des autorisations
Application Pratique
Présentation de l’exercice
Présentation de l’application
Politique de sécurité
Présentation des différentes étapes à réaliser
Préparation d’une base de données
Définition des providers
Création des rôles et utilisateurs, et définition de leurs droits d’accès sur les ressources l’application
Création de l’application
Utilisation de l’application
Conclusion
Extrait du cours ASP.NET
1 Introduction
Il est important pour un site internet de gérer l’identification de ses utilisateurs ainsi que les autorisations. Nous allons voir dans ce chapitre, les différentes méthodes d’authentification ainsi que la gestion des autorisations suivant un utilisateur ou un rôle précis.
Authentifier des utilisateurs permet d’autoriser l’accès à aux ressources de votre application, qu’à certaines personnes ou proposer des services/fonctionnalités supplémentaires à des personnes privilégiées (comptes payants, comptes d’administrateurs ou modérateurs entres autres). Cela sert aussi à enregistrer ses informations personnelles et à suivre les actions d’un utilisateur, par exemple sur un site d’achat pour remplir un panier.
2 Authentification
2.1 Contrôles implémentés dans ASP.NET
ASP.NET implémente déjà des propriétés et méthodes, qui vont nous simplifier la tâche et sont fournies avec certains paramètres de sécurité, qu’il ne nous serait pas forcément évident de reproduire.
2.1.1 Partie Login de la Boîte à Outils
Nous allons voir une description des différents contrôles de login qui se trouvent dans la boîte à outils et qu’ASP.NET implémente par défaut :
Comme vous pouvez le constater, grâce aux contrôles d’ASP.NET, on peut créer l’interface graphique sans même saisir une ligne de code. Vous pouvez utiliser un contrôle Validation Summary pour afficher les informations de validations retournées par certains de ces contrôles (contenant des contrôles de validation), cela améliorera l’accessibilité de votre site.
2.1.2 La classe Membership
Cette classe permet de gérer les utilisateurs. Elle vous permet entre autres d’ajouter, supprimer, sélectionner et modifier des utilisateurs. Cette classe se trouve dans System.Web.Security.Membership
2.1.3 La classe Roles
Les rôles permettent de gérer les autorisations comme l’accès à certaines parties du site.
Cette classe se trouve dans System.Web.Security.Roles.
2.1.4 Outil d’administration Web
Avant de faire cette manipulation, il faut que vous prépariez votre site Web. Pour cela créez des sous dossiers sur lesquels seront appliquées les permissions.
Pour paramétrer les options d’authentification il existe un outil d’administration permettant, via une interface graphique, de gérer l’authentification sans toucher à aucun fichier.
Pour y accéder aller dans le menu Projet puis choisissez Configuration ASP.NET.
Cliquez sur suivant. Vous arrivez maintenant sur le choix de l’authentification. Si c’est une authentification via internet, choisissez la première possibilité. En revanche si votre application Web est destinée à être sur un réseau local et qu’il va falloir utiliser l’authentification Windows ou Active directory, choisissez la seconde option.
2.2 Les différents types d’authentification
Il y a 3 types d’authentification possible: avec Windows, par formulaire et avec un Passport qui est un service de Microsoft. Nous allons les voir plus en détails dans ce qui suit.
2.2.1 Windows
Si votre application Web se trouve en local avec la base de données des utilisateurs ou Active Directory, vous pouvez utiliser l’authentification Windows. Ce système d’authentification est surtout utilisé au sein des entreprises où les machines se connectant à l’application sont dans le même réseau.
Pour l’activer il faut ajouter ce code dans le web.config (plus exactement dans la balise system.web) :
<authentication mode= »Windows » />
On peut configurer ce mode d’authentification avec l’assistant de configuration de sécurité comme on l’a déjà vu ou avec ce que l’on verra plus tard dans la partie 3 pour protéger l’accès à des fichiers et dossiers.
2.2.2 Formulaire
L’authentification par formulaire est le plus courant sur internet. Comme pour les autres types d’authentification, les utilisateurs possèdent un login et un mot de passe. La connexion .
2.2.2.1 Configurer le Web.config
Activer le mode formulaire dans le Web.config (dans system.web)..
C’est‐à‐dire que dans le web.config on pourrait aussi avoir :
<authorization> <deny users="?" /> </authorization> Web.config <system.web> <authentication mode="Forms" /> </system.web>
Il faut savoir que par défaut ASP.NET va rediriger l’utilisateur vers une page d’authentification si celui ci n’est pas authentifié.
Cette page est LoginForm.aspx.
Pour changer cette page voici le code à mettre :
Web.config <authentication mode="Forms"> <forms loginUrl="AuthFormulaire.aspx" /> </authentication>
2.2.2.3 Personnaliser l’authentification par formulaire
Pour ce faire nous utiliserons la classe FormsAuthentication.
2.2.3 Passport Microsoft
Les passports sont issus d’un service de Microsoft qui permet d’authentifier des gens…
2.2.4 Emprunt d’identité
Par défaut, ASP.NET effectue les requêtes pour les ressources (comme un fichier, accès à des données et autres) avec le compte d’ASP.NET. Et ce même si l’utilisateur courant est connecté.
Cependant il peut arriver que cela génère des erreurs ou que vous vouliez utiliser un autre compte.
Quand on utilise le mode d’authentification Windows, ASP.NET peut utiliser le compte de l’utilisateur courant connecté, pour accéder aux ressources. On parle alors d’emprunt d’identité, en anglais « Impersonation ». Pour ce faire on va utiliser la balise identity dans la zone system.web du Web.config. Il suffit de mettre l’attribut impersonate à true.
………
Cours ASP.NET: Gestion de l’authentification et des autorisations (1.68 MO) (Cours PDF)