lundi 16 mars 2020

Authentification dans les Applications ASP.NET Core & Angular

C'est très important pour une Application Web d'intégrer le bon module d'authentification. Toute Application Web est destinée à être installée en ligne et à permettre aux utilisateurs de venir se connecter, créer un profile et gérer ce profile qui leur donnera accès aux différentes partie de l'application auxquelles ils seront autorisés.

C'est l'objectif fonctionnel du LoginModule à l'époque (mais aucune trace du LoginModule mabyre n'a pas souhaité la sauvegarder car c'est obsolète) aujourd'hui je vais actualiser mes connaissances en utilisant ASP.NET Core et Angular. Pour ce faire, facile je pars du Template d'application proposé par Visual Studio et je regarde la partie Authentification.

Microsoft - Facebook, Google, and external provider authentication in ASP.NET Core
Ce didacticiel montre comment créer une application ASP.NET Core 3.0 qui permet aux utilisateurs de se connecter à l'aide d'OAuth 2.0 avec des informations d'identification de fournisseurs d'authentification externes.

Voilà le mot clef que l'on retrouve asse souvent maintenant c'est OAuth. C'est assez énorme et c'est cela qu'il faut utiliser.

Alors je créé une application Web ASP.NET Core 3.0 & Angular j'exécute et je me retrouve que la page d'enregistrement d'un nouvel utilisateur :


Authentification avec ASP.NET Core & Angular

Tout est là pour m'enregistrer et accéder aux pages réservées de cette application que j'ai appelé WebApplicationAuthen.

Je m'enregistre et j'accède à la prochaine page, celle qui est authorisée aux utilisateurs authentifiés :


Authentification avec ASP.NET Core & Angular - Enregistrement
Je vous livre mes impressions, franchement c'est super bien fait ! Il y a tout et le tout en TypeScript avec Angular. Je vais donc lire la doc pour installer un "server de mail" afin de l'utiliser pour la confirmation d'enregistrement :

Microsoft.NET - Account confirmation and password recovery in ASP.NET Core

Je clique sur la confirmation pour confirmer la création de mon compte et me voici authentifié :

Authentification avec ASP.NET Core & Angular - Authentification

Savoir où est la base de données ?

Je cherche la chaine de connexion dans :

WebApplicationAuthen\WebApplicationAuthen\appsettings.json

"ConnectionStrings": {
 "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-WebApplicationAuthen-53bc9b9d-9d6a-45d4-8429-2a2761773502;Trusted_Connection=True;MultipleActiveResultSets=true"
 },

Pour avoir un vue du mssqllocaldb avec Visual Studio je dois aller dans :


Visual Studio - SQL Server Object Explorer - Où est la base ?
Et puis je fais bouton droit propriété :


Visual Studio - SQL Server Object Explorer - Où est la base ?
Pour me rendre compte que la base est dans le répertoire :

C:\Users\UserName\aspnet-WebApplicationAuthen-53bc9b9d-9d6a-45d4-8429-2a2761773502.mdf

Pour une clef dans le nom de la base ? Pour des raisons de sécurité ainsi son nom est moins facile à deviner.

Que trouve t-on dans cette base ?

Des Tables bien sûr, les suivantes :

AspNetRoleClaims
AspNetRoles
AspNetRoleUserClaims
AspNetRoleUserLogins
AspNetRoleUserRoles
AspNetRoleUsers


SQL Server ASPNET DB Tables
Voilà la bonne surprise est que tout cela n'est que du classique de l'ASP.NET DB de l'époque des premières versions ASPX  ou l'on a toutes les applications pour créer des groupes d'authentification de pouvoir ajouter des Users dans ces groupes ou de les retirer afin d'attribuer des rôles ou de les retirer.

CQFD !

Aucun commentaire:

Publier un commentaire