es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál es el enfoque para integrar la funcionalidad de identidad en una API de .net?

He desarrollado una API .net con un par de endpoints. Eventualmente será utilizada por aplicaciones móviles y aplicaciones web.

En la base de datos ya tengo una tabla que contiene el id del usuario (entero), nombre y correo electrónico. Además, tengo otras tablas que contienen los datos comerciales relacionados con el usuario, utilizando el id del usuario como clave foránea.

Ahora quiero agregar funcionalidad de identidad a la API. Por ejemplo: registro, inicio de sesión y restablecimiento de contraseña.

Al leer este artículo: https://learn.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-6.0&tabs=visual-studio

ASP.NET Core Identity:

Es una API que admite la funcionalidad de inicio de sesión de la interfaz de usuario (UI).
Administra usuarios, contraseñas, datos de perfil, roles, reclamaciones, tokens, confirmación de correo electrónico y más.

Pregunta 1:
No dice nada sobre si se puede agregar a una API. Y en ese escenario, suponiendo que la API sea utilizada por una aplicación móvil, ¿cómo funcionará la funcionalidad de restablecimiento de contraseña? ¿Se generará una página web en mi API web?

Además, el artículo dice lo siguiente:

ASP.NET Core Identity agrega funcionalidad de inicio de sesión de la interfaz de usuario (UI) a las aplicaciones web de ASP.NET Core. Para asegurar las API web y las SPAs, use uno de los siguientes:

Azure Active Directory
Azure Active Directory B2C (Azure AD B2C)
IdentityServer4

Pregunta 2:
¿Es posible agregar identidad a una API pero no se recomienda hacerlo?

Pregunta 3:
El enlace de IdentityServer4 me lleva a una página externa, ¿se recomienda utilizar un proveedor externo?

Pregunta 4:
Una opción que tengo es crear endpoints para inicio de sesión, registro, etc., e implementar la funcionalidad de inicio de sesión mediante código. La segunda opción es que los endpoints de inicio de sesión y registro utilicen .NET Identity, pero entonces, si uso un proveedor de OAuth, ¿cuál es el punto de usar .NET Identity?

Pregunta 5:
¿Hay alguna otra opción recomendada?

Tags:  ,

Answer

  1. Avatar for davy.ai
    1. El artículo no menciona específicamente si se puede agregar ASP.NET Core Identity a una API, pero menciona que agrega funcionalidad de inicio de sesión de UI a aplicaciones web. La funcionalidad de restablecimiento de contraseña aún se puede implementar en una API mediante la creación de un punto de conexión para ello y manejando el proceso de restablecimiento de contraseña a través de código.

    2. Se puede agregar ASP.NET Core Identity a una API, pero puede que no sea el enfoque recomendado para asegurar APIs y SPAs. La autenticación y autorización en APIs y SPAs se pueden lograr mediante proveedores externos como Azure Active Directory, Azure Active Directory B2C, o IdentityServer4.

    3. Se recomienda utilizar el proveedor externo IdentityServer4 para asegurar APIs y SPAs.

    4. La decisión entre crear puntos de conexión para inicio de sesión, registro, etc. e implementar la funcionalidad a través de código, o utilizar .NET Identity con un proveedor de OAuth, dependería de los requisitos específicos de la aplicación. .NET Identity proporciona características como el almacenamiento y el hash de contraseñas, mientras que los proveedores de OAuth pueden manejar la autenticación y autorización.

    5. No hay una opción recomendada de talla única para agregar autenticación y autorización a APIs y SPAs. Dependerá de los requisitos y limitaciones específicas de la aplicación. Se pueden considerar proveedores externos como Azure Active Directory, Azure Active Directory B2C o IdentityServer4 para asegurar APIs y SPAs, mientras que se pueden construir implementaciones personalizadas para requisitos específicos.

Comments are closed.