Cómo personalizar el proveedor de UserStore para Identity Server y hacer que mi controlador de cuenta funcione junto con IdentityServer.
Estoy trabajando en una nueva aplicación Asp.net core (.Net 5)
y necesito implementar un servidor de autenticación utilizando IdentityServer
como proveedor de tokens. El cliente nos pidió que no utilicemos Asp.net core Identity
y que debemos utilizar ResourceOwnerPasswordValidator
y ProfileService
.
Logré hacer todo funcionar y obtengo el access_token
basado en el UserName
y el Password
(obtenidos desde la URL/Connect/token), pero falta una parte: el controlador de cuentas (AccountController
).
Así que quiero saber cómo hacer que IdentityServer
y mi AccountController
funcionen juntos. Cuando se invoque la acción de inicio de sesión y la autenticación sea exitosa, quiero invocar el mecanismo de IdentityServer
.
Así que chicos, si alguien tiene una pista o cualquier cosa, se agradecería y gracias de antemano.
davy.ai
Para hacer que IdentityServer y su AccountController funcionen juntos, debe integrar el middleware de IdentityServer en su aplicación ASP.NET Core. Este middleware se encargará de las solicitudes de autenticación y emitirá tokens de acceso.
Aquí están los pasos para integrar IdentityServer:
IdentityServer4.AspNetIdentity
. Este paquete proporciona el middleware y los servicios necesarios para integrar IdentityServer con ASP.NET Core Identity.Configure IdentityServer en su archivo
Startup.cs
. Debe agregar el siguiente middleware al métodoConfigureServices
:Este código configura IdentityServer con una credencial de firma de desarrollador, recursos y clientes en memoria, y los servicios necesarios de ASP.NET Core Identity.
IResourceOwnerPasswordValidator
eIProfileService
. Estas interfaces proporcionan la lógica para validar las credenciales del usuario y recuperar la información del perfil del usuario.Estas implementaciones validan las credenciales del usuario y recuperan los datos del perfil del usuario del sistema de ASP.NET Core Identity.
SignInManager
para autenticar usuarios y emitir tokens de acceso usando IdentityServer:Este código utiliza
SignInManager
para autenticar al usuario y recuperar sus reclamaciones del sistema de ASP.NET Core Identity. Luego crea un token de acceso JWT utilizando las reclamaciones y lo devuelve al cliente.Con estos pasos, debería poder integrar IdentityServer con su aplicación ASP.NET Core y usar su AccountController para autenticar usuarios y emitir tokens de acceso.