web-dev-qa-db-fra.com

Identité .NET Core vs IdentityServer4

La question: dois-je utiliser .Net Core Identity ou IdentityServer 4 avec Identity

Je dois créer une application avec une fonctionnalité de connexion/enregistrement et permettre aux utilisateurs d'utiliser des API pour importer/exporter des données depuis mon logiciel. Je veux également avoir des connexions externes comme google, Twitter, etc.

Et je ne peux pas comprendre pourquoi aurais-je besoin d'Identity Server alors que tout peut être fait en utilisant uniquement Identity.

Pourquoi devrais-je avoir besoin ou vouloir IdentityServer? J'ai juste besoin que le travail soit bien fait et aussi simple que possible.

18
ferdinand

Ça dépend.

IdentityServer vous fournira OAuth 2.0 et mise en œuvre d'OpenID Connect, et il gérera tous les détails pour vous (vous fournissant les points de terminaison, la gestion des jetons, les étendues, les octrois, etc.). Il s'exécute indépendamment afin que vous peut l'utiliser pour plusieurs clients (SPA, applications mobiles, applications Web) et il est bien isolé du reste de votre application. Si vous le souhaitez, vous pouvez l'utiliser avec ASP.NET Core Identity.

Si vous n'utilisez pas IdentityServer, vous devrez écrire certaines de ces choses vous-même car ASP.NET Core Identity est un système d'appartenance et il ne fournit aucun point de terminaison prêt à l'emploi et ni gestion de jeton ni prise en charge de différentes manières pour autoriser l'autorisation .

Vous devez évaluer s'il est préférable d'écrire ces choses vous-même, mais vous avez une configuration plus simple car vous n'avez probablement pas besoin de tout ce qu'IdentityServer fournit, bien que cela puisse vous limiter à l'avenir.

Vous pouvez également consulter OpenIddict qui est moins compliqué que IdentityServer.

14
Tomáš Linhart

Vous ne pouvez vraiment pas comparer les deux.

ASP.NET Identity est une API de base de données pour gérer les utilisateurs, les rôles, les revendications, les jetons de confirmation par e-mail, etc. Quelque chose que vous pouvez utiliser pour implémenter l'inscription, la connexion, le changement de mot de passe, etc.

IdentityServer est une implémentation OpenID Connect et OAuth 2.0. Il vous offre des fonctionnalités telles que l'authentification unique et le contrôle d'accès API. Ceci est utile si vous souhaitez partager des utilisateurs entre plusieurs applications clientes.

Vous pouvez cependant combiner les deux - utilisez IdentityServer pour le travail de protocole et ASP.NET Identity pour la gestion des utilisateurs sur votre page de connexion centrale.

20
leastprivilege