Overview
La librería CodeDesignPlus.Net.Security proporciona un marco robusto y coherente de interfaces y clases base, junto con métodos de extensión, que están diseñados para estandarizar y simplificar las funcionalidades esenciales de seguridad en aplicaciones .NET. A través de estas abstracciones, la librería permite a los desarrolladores implementar de manera consistente la autenticación y autorización basadas en JWT (JSON Web Tokens), además de proporcionar acceso fácil a la información del usuario autenticado.
Propósito y alcance
Section titled “Propósito y alcance”El propósito principal de esta librería es facilitar la implementación de la seguridad en aplicaciones .NET, proporcionando un conjunto de herramientas y extensiones para manejar la autenticación y la autorización basadas en JWT. Su alcance incluye la configuración de la autenticación JWT, el manejo de excepciones de tokens, y la gestión del contexto de usuario.
Principales características
Section titled “Principales características”- Configuración simplificada: Utiliza el patrón de opciones para la configuración centralizada de la seguridad.
- Autenticación basada en JWT: Facilita la autenticación de usuarios utilizando JWTs.
- Manejo de excepciones de tokens: Proporciona un mecanismo para manejar excepciones relacionadas con tokens de seguridad.
- Contexto de usuario: Ofrece acceso fácil a la información del usuario autenticado, incluyendo claims y headers.
- Extensibilidad: Permite la personalización de la configuración mediante acciones opcionales.
- Integración con ASP.NET Core: Se integra fácilmente con los servicios de autenticación y autorización de ASP.NET Core.
Casos de uso típicos
Section titled “Casos de uso típicos”- Autenticación de usuarios en APIs REST y microservicios utilizando JWTs.
- Autorización de usuarios basada en roles o claims.
- Manejo centralizado de la configuración de seguridad en aplicaciones .NET.
- Acceso fácil a la información del usuario autenticado en diferentes partes de la aplicación.
- Manejo de excepciones relacionadas con tokens de seguridad, como tokens expirados o inválidos.
Componentes Principales
Section titled “Componentes Principales”AuthenticationFailedContextExtensions
: Proporciona métodos de extensión para manejar excepciones de autenticación relacionadas con tokens.ServiceCollectionExtensions
: Ofrece métodos de extensión para configurar los servicios de seguridad enIServiceCollection
yIApplicationBuilder
.UserContext
: ImplementaIUserContext
y proporciona acceso a la información del usuario autenticado actual, incluyendo claims y headers.SecurityOptions
: Define las opciones de configuración de la seguridad.IUserContext
: Define una interfaz para acceder al contexto del usuario.
Directorysrc
DirectoryCodeDesignPlus.Net.Security
DirectoryExtensions
- AuthenticationFailedContextExtensions.cs
- ServiceCollectionExtensions.cs
DirectoryServices
- UserContext.cs
DirectoryCodeDesignPlus.Net.Security.Abstractions
DirectoryOptions
- SecurityOptions.cs
- IUserContext.cs
Primeros Pasos
Section titled “Primeros Pasos”En esta sección, aprenderás a instalar y configurar la librería CodeDesignPlus.Net.Security
en tu proyecto de .NET. Además, explorarás los servicios, métodos de extensión y excepciones que proporciona la librería para implementar la seguridad en tu aplicación.
Requisitos previos
Section titled “Requisitos previos”- .NET 8 o superior.
- Un proyecto de ASP.NET Core.
- Comprensión básica de JWT y autenticación basada en tokens.
- Un servidor de autenticación compatible con OpenID Connect.
Instalación
Section titled “Instalación”Para instalar la librería CodeDesignPlus.Net.Security
, puedes utilizar el administrador de paquetes NuGet o la CLI de .NET. A continuación, se muestra un ejemplo de cómo instalar la librería utilizando la CLI de .NET:
dotnet add package CodeDesignPlus.Net.Security
Install-Package CodeDesignPlus.Net.Security
<PackageReference Include="CodeDesignPlus.Net.Security" Version="1.0.0" />
Ejemplo rápido
Section titled “Ejemplo rápido”La solución CodeDesignPlus.Net.Security.Sample muestra cómo configurar la seguridad en una aplicación .NET Core. A continuación, se muestra un ejemplo de cómo configurar la seguridad en tu proyecto:
using CodeDesignPlus.Net.Security.Extensions;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSecurity(builder.Configuration);
var app = builder.Build();
app.UseAuth();
app.MapGet("/", () => "Hello World!").RequireAuthorization();
app.Run();
Métodos de extensión
Section titled “Métodos de extensión”La librería CodeDesignPlus.Net.Security
proporciona los siguientes métodos de extensión para configurar la seguridad en aplicaciones .NET:
ServiceCollectionExtensions
Section titled “ServiceCollectionExtensions”La clase ServiceCollectionExtensions
contiene métodos de extensión para configurar los servicios de seguridad en IServiceCollection
y IApplicationBuilder
.
Opciones de configuración
Section titled “Opciones de configuración”SecurityOptions
define las opciones de configuración de la seguridad, incluyendo la URI de la autoridad de autenticación, el emisor válido de los tokens JWT, las audiencias válidas, y otras configuraciones relacionadas con la autenticación y la autorización.
Servicios
Section titled “Servicios”La librería CodeDesignPlus.Net.Security
proporciona los siguientes servicios para implementar la seguridad en aplicaciones .NET:
UserContext
Section titled “UserContext”UserContext
implementa IUserContext
y proporciona acceso a la información del usuario autenticado actual, incluyendo claims y headers.
Conclusiones
Section titled “Conclusiones”La librería CodeDesignPlus.Net.Security
ofrece una solución completa y flexible para implementar la seguridad en aplicaciones .NET. Facilita la configuración de la autenticación JWT, el manejo de excepciones y el acceso a la información del usuario, mejorando la seguridad y la mantenibilidad de las aplicaciones.