Une présentation de la librairie Microsoft ASP.NET Identity

Disons-le, les chances que vous faites un site avec ASP.NET et que vous aillez la nécessité d’authentifier un utilisateur pour lui présenter du contenu privilégié sont assez hautes.

Au début des temps, il y avait ASP.NET Web Forms. À l’époque, l’approche était innovante et permettait aux développeurs d’applications web de mettre en place des solutions web complexes.

Ceci étant dit, depuis la venue .NET 2.0, en 2005, ASP.NET met à la disposition des développeurs des fonctionnalités permettant d’authentifier ses utilisateurs. Tout ce dont vous avez besoin est d’une base de données SQL et le tour est joué. Une très très grande majorité des outils développés pour ASP.NET utilisent ces fonctionnalités. De plus, il est même possible d’y ajouter des fonctionnalités personnalisées grâce à ses possibilités d’extensibilité.

Microsoft ASP.NET Identity

Microsoft ASP.NET Identity est le nom de la librairie que vous aurez à retenir lorsqu’il sera temps d’authentifier vos utilisateurs. Après dix ans, l’aspect de la gestion de l’authentification des utilisateurs avec ASP.NET avait nécessairement besoin d’un petit coup de jeunesse.

Avant tout, une mise en contexte est nécessaire. Il faut voir comment est comment le développement web, avec .NET, s’est transformé dans les dix dernières années.

À l’époque, ces technologies n’existaient pas :

J’ai aussi l’impression que vous pourriez aussi compléter la liste avec votre propre sélection de technologies. L’écosystème est vaste et assez riche.

Comment ça marche

En quelques mots, le fonctionnement de ASP.NET Identity est lié de très près au fonctionnement d’Entity Framework. Les fondations vous permettant d’aller récupérer les informations d’un utilisateur ou d’en modifier les informations utilisent Entity Framework.

Une ligne de code vaut mille mots, j’ai l’habitude de dire. De façon très simpliste, il est possible de créer un utilisateur de cette façon :


var userStore = new UserStore<IdentityUser>();
var manager = new UserManager<IdentityUser>(userStore);
var user = new IdentityUser() { UserName = UserName.Text };
IdentityResult result = manager.Create(user, Password.Text);
if (result.Succeeded)
{
StatusMessage.Text = string.Format("User {0} was created successfully!", user.UserName);
}
else
{
StatusMessage.Text = result.Errors.FirstOrDefault();
}

view raw

identity.cs

hosted with ❤ by GitHub

L’exemple de code a été pris ici.

Tout le code vous permettant de gérer l’authentification de vos usagers au sein de votre application est situé sous l’espace de noms Microsoft.AspNet.Identity.

Une première observation est que l’API d’ASP.NET Identity est maintenant conçu pour utiliser les fonctionnalités d’appels aux méthodes asynchrones. D’ailleurs, l’exemple de code précédemment utilisé utilise directement cela.

L’autre fonctionnalité au coeur de la librairie est l’utilisation de la notion Code First présente dans Entity Framework. Cet aspect vous permet de développer la définition des propriétés que contient votre identifiant utilisateur (nom, ville, âge, etc.).

Une connexion chez Google ou Facebook

Ce qui devient très intéressant avec ASP.NET Identity est la possibilité d’authentifier ses visiteurs à l’aide de leur compte Facebook et/ou Google à même l’API fourni par ASP.NET.

Ceux qui ont déjà eu à développer ce genre d’applications savent que ce n’est pas tout le temps une partie de plaisir et que, selon l’implémentation choisie, l’opération expose de développeur à une multitude de situations à gérer. De plus, il est de plus en plus fréquent d’avoir à authentifier des utilisateurs en utilisant un compte Google, Facebook ou même Microsoft.

Ceci étant dit, avec ASP.NET Identity, il est relativement facile de développer une application utilisant OAuth2 de Google, par exemple. Comme le démontre l’article, il revient à configurer votre application pour utiliser une connexion Google et vous serez en bateau. L’interaction avec le fournisseur d’authentification sera gérée automatiquement.

Y mettre la main

ASP.NET Identity est une librairie de son temps. En ce sens, je veux dire qu’elle s’installe à l’aide de NuGet. Au total et selon votre contexte de développement, il y a trois librairies à votre disposition :

La meilleure façon de s’initier à ASP.NET Identity est de pouvoir lire du code qui l’utilise. À ce sujet, je recommande d’aller jeter au coup d’oeil à ce dépôt GitHub. Il s’agit d’une application de démonstration utilisant la majeure partie des fonctionnalités de la librairie. Bien conçu!

Sources

Publicité

Auteur : Pascal Paradis

Je suis les mains et le cerveau derrière http://frenchcoding.com. Je développe des microservices chez @UbisoftMTL. Amateur de Hockey et j'aime la technologie, en général.

Laisser un commentaire

Entrer les renseignements ci-dessous ou cliquer sur une icône pour ouvrir une session :

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

%d blogueueurs aiment cette page :