Vous êtes sur la page 1sur 15

Chapitre 9:

Authentification et Autorisation en utilisant


ASP.Net Identity
Gestion des utilisateurs
Plan du chapitre
• Authentification et autorisation
• Enumération des utilisateurs
• CRUD sur les utilisateurs.
• Etendre user properties
Qu’est ce que l’authentification

• L’authentification est le processus de détermination de l’identité d’un utilisateur.


• L’autorisation est le processus consistant à déterminer si un utilisateur a accès à
une ressource.
• Dans ASP.NET Core, l’authentification est gérée par le service d’authentification,
IAuthenticationService, qui est utilisé par l’intergiciel (middleware)
d’authentification.
• Le service d’authentification utilise des gestionnaires d’authentification inscrits
pour effectuer des actions liées à l’authentification.
Authentification

Voici des exemples d’actions liées à l’authentification :

• Authentifier un utilisateur.
• Répondre quand un utilisateur non authentifié tente d’accéder à une ressource
restreinte.
• Les gestionnaires d’authentification inscrits et leurs options de configuration sont
appelés « schémas ».
• Les schémas d’authentification sont spécifiés en inscrivant les services d’authentification
dans Program.cs.
Qu’est ce que ASP.Net Core Identity
• ASP .NET Core Identity permet de mettre en œuvre rapidement la gestion de
l’authentification des utilisateurs,
• puis la vérification des autorisations nécessaires pour accéder à une action d’un
contrôleur.
• Par défaut, Microsoft propose des classes qu’il est possible de personnaliser en
les spécialisant,
• mais qui impose tout de même un schéma de base de données.

Dans un contrôleur de notre application, nous utiliserons le manager


UserManager<IdentityUser> qui permet d’ajouter, modifier, supprimer un
utilisateur
Qu’est ce qu’un « user Manager »
• UserManager<TUser> est une classe
• Son espace de nom est Microsoft.AspNetCore.Identity
• Elle Fournit les API pour la gestion de l’utilisateur dans un magasin de
persistance.
public class UserManager<TUser> : IDisposable where TUser : class
Quelques méthodes UserManager
• Pour accéder aux données contenues de
la base de données, les contrôleurs
d’une application ASP .NET utilisent des
managers proposés par ASP .NET
Identity.

• Ces managers utilisent de manière sous-


jacente des fournisseurs de stockages
(classes implémentant des interfaces
particulières proposées par ASP .NET
Identity) pour créer, obtenir et
supprimer, etc. un utilisateur ou un rôle.

• Ces fournisseurs de stockage utilisent les


entités prises en charge par l’Entity
Framework pour accéder à la base de
données.
Modèles d’identité
Quelques entités du schéma d’identité
Un utilisateur (classe User) possède un identifiant (clé
primaire), une identité (nom et prénom), des informations de
connexion (nom d’utilisateur et mot de passe chiffré) et des
informations de contact (adresse mail)
Qu’est ce qu’une autorisation
L’autorisation fait référence au processus qui détermine ce qu’un utilisateur peut faire.

Par exemple, un utilisateur administratif est autorisé à créer une bibliothèque de documents, à ajouter des documents, à modifier des
documents et à les supprimer. Un utilisateur non administratif travaillant avec la bibliothèque n’est autorisé qu’à lire les documents.

L’autorisation dans ASP.NET Core est contrôlée avec AuthorizeAttribute et ses différents paramètres.
Dans sa forme la plus simple, l’application de l’attribut à un contrôleur, une action ou Razor une page limite
l’accès [Authorize] à ce composant aux utilisateurs authentifiés.
Qu’est ce qu’une autorisation
Utiliser l’attribut pour autoriser l’accès AllowAnonymous par des utilisateurs non authentifiés
à des actions individuelles.
Qu’est ce qu’une autorisation
Limiter l’accès à un rôle spécifié Plusieurs rôles peuvent être spécifiés en tant
que liste séparée par des virgules :

Le SalaryController rôle est accessible uniquement par les


utilisateurs qui sont membres du HRManager rôle ou du
Finance rôle.
Qu’est ce qu’une autorisation
Lorsque plusieurs attributs sont appliqués, un utilisateur accédant doit être membre de tous
les rôles spécifiés.

Vous aimerez peut-être aussi