web-dev-qa-db-fra.com

Aucune option d'authentification des comptes d'utilisateurs individuels dans le modèle d'API Web ASP.NET Core

Je suis un peu confus quant à la raison pour laquelle il n'y a pas d'option d'authentification des comptes d'utilisateurs individuels dans le dernier modèle d'API Web ASP.NET Core.

Est-il toujours possible d'implémenter des comptes d'utilisateurs individuels de la même manière que le modèle MVC ou cela n'aurait-il pas de sens?

Supposons que je crée une API Web autonome qui disposera de toute ma logique métier et de ma couche de données qui accède à la base de données contenant les tables d'identité AspNet. Je prévois d'appeler cette API avec une application MVC.

Je sais qu'une façon de le faire est de créer une application asp.net MVC avec l'authentification des comptes d'utilisateurs individuels et de simplement créer l'API directement dans l'application MVC à l'aide d'un dossier controllers/api. Cependant, je ne veux pas le faire de cette façon parce que je veux que l'API soit son propre projet autonome pouvant être hébergé sur un serveur complètement différent et accessible par plusieurs applications, pas seulement une application MVC.

Quelqu'un peut-il me guider dans la bonne direction sur la façon dont l'authentification fonctionne généralement dans ce scénario car il n'y a pas de modèle?

27
Blake Rivell

L'option d'authentification des comptes d'utilisateurs individuels pour l'API Web ASP.NET Core est disponible dans . NET Core 2.0 Preview 1 .

Malheureusement .NET Core 2.0 Preview 1 n'est pas disponible dans la version VS 2017.

Mais vous pouvez installer Visual Studio 2017 Preview (vous pouvez l'utiliser côte à côte avec la version stable de VS 2017): enter image description here

10
Alexan

Je pense que vous pouvez utiliser IdentityServer4 qui permet d'implémenter l'authentification unique et le contrôle d'accès pour ASP .NET Core Web APIs en utilisant des protocoles comme OpenID Connect et OAuth2. Il offre une intégration avec ASP.NET Core Identity et Entity Framework Core.

Vous devrez installer le package nuget suivant:

Install-Package IdentityServer4

et ajoutez le middleware IdentityServer au pipeline HTTP:

app.UseIdentityServer();

Vous pouvez trouver plusieurs exemples de démarrage rapide ici ou suivre cet article.

4
Mihaela Diaconu