Estoy tratando de entender el panorama general cuando produzco un nuevo sitio web usando ASP.NET Core. Quiero que los usuarios de mi sitio web puedan registrarse e iniciar sesión en las redes sociales como Facebook y Google. Una vez registrado cuando realizan solicitudes a mi WebAPI de recursos, necesito saber qué usuario ha iniciado sesión para que las solicitudes de recursos se puedan personalizar para el usuario. He jugado con ASP.NET Core Identity y esto parece proporcionar gran parte de la funcionalidad de lo que necesito, por ejemplo, registrarme con proveedores externos, iniciar sesión y almacenar esos detalles en una base de datos usando Entity Framework, pero con un un poco más de magia de lo que realmente me gustaría: muchos tutoriales enumeran los pasos para que funcione sin explicar cómo funciona en segundo plano para hablar con Facebook, por ejemplo.
En el front-end, estoy buscando usar Aurelia y he notado una serie de tutoriales que usan Identity Server, que entiendo que es una implementación de OpenIDConnect.
Después de ver un video sobre IdentityServer ... Entiendo que puede usar ASP.NET Core Identity con IdentityServer. Lo que no entiendo es si eso es algo que me sería útil sobre la implementación de ASP.NET Core Identity. (Dicho esto, parece que no puedo encontrar tutoriales para integrar Aurelia, ASP.NET Core Identity ...) ¿Cuál es generalmente la ventaja de agregar más complejidad con Identity Server en lugar de usar ASP.NET Core Identity?
Respuestas:
Identity Server le permite emitir tokens de acceso para API. En mi experiencia, solo he visto que se usa cuando la aplicación requiere autenticación OAuth 2.0 personalizada que no pueden proporcionar los proveedores de autenticación compatibles con ASP.Net Core. Si su sitio puede usar uno de los proveedores existentes de OAuth 2.0, entonces no hay ninguna ventaja en configurar y administrar su propia instancia de Identity Server.
fuente