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
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
- 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
- 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
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
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
- .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
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
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
La librería CodeDesignPlus.Net.Security
proporciona los siguientes métodos de extensión para configurar la seguridad en aplicaciones .NET:
ServiceCollectionExtensions
La clase ServiceCollectionExtensions
contiene métodos de extensión para configurar los servicios de seguridad en IServiceCollection
y IApplicationBuilder
.
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
La librería CodeDesignPlus.Net.Security
proporciona los siguientes servicios para implementar la seguridad en aplicaciones .NET:
UserContext
UserContext
implementa IUserContext
y proporciona acceso a la información del usuario autenticado actual, incluyendo claims y headers.
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.