Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. OAuth 2 et OpenID Connect
  3. Création d'une application MVC
Extrait - OAuth 2 et OpenID Connect Sécurisez vos applications .Net avec IdentityServer
Extraits du livre
OAuth 2 et OpenID Connect Sécurisez vos applications .Net avec IdentityServer Revenir à la page d'achat du livre

Création d'une application MVC

Présentation

Notre SSO prendra la forme d’une simple application ASP.NET MVC (Model View Controller). Cela surprendra sûrement nombre d’entre vous, mais un SSO n’est pas une application visuellement complexe, il s’agit juste de quelques champs de saisie. Les règles métier ne le sont pas plus : vérifier qu’un e-mail est correct, qu’un mot de passe respecte bien les règles établies, etc. Dans ces conditions, l’utilisation d’un framework JavaScript tel que React, Angular ou encore du framework Microsoft Blazor serait un peu surdimensionnée.

Cela reste toutefois possible et peut présenter un intérêt, par exemple, si votre entreprise a un design system complet sur la base d’un de ces frameworks. Toutefois, l’utilisation d’un front-end séparé complexifie les choses tant d’un point de vue de la sécurité que de l’hébergement, il faut donc bien peser le pour et le contre.

Création du projet

Les captures d’écran de ce livre sont faites avec Visual Studio 2022, mais vous pouvez tout à fait utiliser d’autres éditeurs tels que Visual Studio Code, ou encore Rider.

Commencez par créer un nouveau projet :

images/02EI001.png

Et choisissez une application web MVC en C# :

images/02EI002.png

Puis, configurez son nom et l’emplacement de la solution sur votre disque dur :

images/02EI003.png

Et les options de base :

images/02EI004.png

Une fois le projet créé, l’arborescence doit correspondre à ceci :

images/02EI005.png

Le template de projet que nous avons créé contient déjà les mécaniques nécessaires à un système d’authentification basique. Dans le fichier Program.cs sont définis les services qui seront disponibles via l’injection de dépendance.

L’injection de dépendances est un modèle de conception qui a pour but d’injecter les dépendances d’une classe lors de la construction de celle-ci, plutôt que de les instancier dans les méthodes qui en ont besoin. Ceci évite d’avoir un couplage fort entre les classes et permet l’utilisation de dépendances factices pour les tests.

L’abstraction de la base de données se fait au travers des DbContext d’Entity Framework :

var connectionString = 
builder.Configuration.GetConnectionString("DefaultConnection") ??  ...