Estou tentando entender o cenário geral ao produzir um novo site usando o ASP.NET Core. Desejo que os usuários do meu site possam se registrar e fazer login com mídias sociais como Facebook e Google. Depois de registrado, quando eles solicitam recursos à minha WebAPI, preciso saber qual usuário está conectado, para que os pedidos de recursos possam ser personalizados para o usuário. Eu brinquei com o ASP.NET Core Identity e isso parece fornecer grande parte da funcionalidade do que eu preciso - por exemplo, registrando-me com provedores externos, efetuando login e armazenando esses detalhes em um banco de dados usando o Entity Framework - no entanto, com um um pouco mais de mágica do que eu realmente gostaria - muitos tutoriais listam etapas para fazê-lo funcionar sem explicar como funciona em segundo plano ao conversar com o Facebook, por exemplo.
No front-end, estou procurando usar o Aurelia e notei vários tutoriais que usam o Identity Server - que entendo ser uma implementação do OpenIDConnect.
Tendo passado por um vídeo sobre o IdentityServer ... Entendo que você pode usar o ASP.NET Core Identity com o IdentityServer. O que eu não entendo é se isso é algo que seria útil para mim ao implementar apenas o ASP.NET Core Identity. (Dito isso, parece que não consigo encontrar tutoriais para integrar Aurelia, ASP.NET Core Identity ...) Qual é geralmente a vantagem de adicionar mais complexidade ao Identity Server do que usar o ASP.NET Core Identity?
Respostas:
O Identity Server permite emitir tokens de acesso para APIs. Na minha experiência, só o vi usado quando o aplicativo requer autenticação OAuth 2.0 personalizada que não pode ser fornecida pelos provedores de autenticação suportados pelo ASP.Net Core. Se seu site puder usar um dos provedores OAuth 2.0 existentes, não haverá vantagem em configurar e gerenciar sua própria instância do Identity Server.
fonte