AYUDA .NET

IdentityServer .NET (Cómo funciona para desarrolladores)

Chipego
Chipego Kalinda
13 de agosto, 2024
Compartir:

Introducción

La seguridad es crucial en la arquitectura de software actual, sobre todo cuando se trata de permisos y autenticación de usuarios. Como un marco de referencia destacado para implementar OpenID Connect y OAuth 2.0, IdentityServer4 ofrece una opción confiable para la autorización y autenticación centralizada en redes dispersas. Cuando los desarrolladores combinan IronPDF, una potente biblioteca C# para la generación de PDF, con la gestión segura de identidades, pueden combinar fácilmente ambos para crear documentos PDF que cumplan con una variedad de requisitos de aplicación.

IdentityServer4 proporciona una solución modular basada en estándares que facilita la instalación de la gestión de identidades. Con su ayuda, los desarrolladores pueden crear un proveedor de identidad centralizado que gestione la autenticación de usuarios, el acceso, la validación y emisión de tokens y la validación de permisos para una gran variedad de servicios y aplicaciones. IdentityServer4 permite a los desarrolladores crear experiencias de autenticación seguras e intuitivas al admitir numerosos métodos de autenticación, como nombre de usuario/contraseña, inicios de sesión sociales y autenticación multifactor.

Este tutorial cubrirá la integración de C# de IdentityServer4 con IronPDF, mostrando cómo usar IdentityServer4 para crear procesos seguros de autorización y autenticación y cómo usar las identidades de usuario creadas para personalizar la creación de documentos PDF de IronPDF. Repasaremos cómo mejorar la seguridad y funcionalidad de sus aplicaciones C#, desde la configuración de IdentityServer4 como proveedor centralizado de identidad y autenticación hasta la integración de IronPDF para la producción dinámica de PDF.

¿Qué es IdentityServer4 c#?

Un marco de código abierto muy popular llamado IdentityServer4 se utiliza en aplicaciones .NET y C# para realizar la gestión de identidades, la autorización y la autenticación. Es una solución flexible para asegurar aplicaciones web, APIs y microservicios porque está hecha para cumplir con protocolos de seguridad contemporáneos como OpenID Connect y OAuth 2.0.

IdentityServer4 funciona esencialmente como un servidor de autenticación centralizado, gestionando la identificación de usuarios y la gestión de permisos, la emisión de tokens de acceso válidos y la validación de credenciales. Proporciona a los programadores la capacidad de integrar autenticación federada e inicio de sesión único (SSO) en varias aplicaciones y servicios, resultando en una experiencia de usuario final segura y fluida.

IdentityServer .NET (Cómo funciona para desarrolladores): Figura 1 - IdentityServer4: Usando ASP.NET Core Identity

Características de IdentityServer4

SSO, o inicio de sesión único

Sin tener que volver a introducir sus credenciales, los usuarios pueden acceder a distintas aplicaciones o servicios con una sola autenticación.

Compatibilidad con OpenID Connect y OAuth 2.0

Con el fin de ofrecer compatibilidad y soporte a una amplia gama de aplicaciones y plataformas cliente, IdentityServer4 ofrece protocolos estándar del sector para la autenticación y autorización seguras.

Configuración adaptable

Los desarrolladores pueden personalizar los parámetros de seguridad para adaptarlos a los requisitos de determinadas aplicaciones, ya que disponen de un control detallado sobre la configuración de las políticas de autenticación y permisos.

Conectividad con ASP.NET Core

La autenticación para aplicaciones web y API de ASP.NET Core es fácil de implantar gracias a la perfecta integración de IdentityServer4 con el framework.

Personalización y adaptabilidad

Gracias al alto grado de extensibilidad y personalización del marco, los desarrolladores pueden añadir nuevos almacenes de usuarios, proveedores de identidad, usuarios de prueba y flujos de trabajo de autenticación según sea necesario.

Verificación de usuarios

IdentityServer4 ofrece a los desarrolladores la flexibilidad necesaria para seleccionar la configuración del mecanismo de autenticación que mejor se adapte a los requisitos de su aplicación web. Estos mecanismos incluyen nombre de usuario/contraseña, inicios de sesión sociales (como Google, Facebook, etc.), y proveedores de identidad externos (como Active Directory, Azure AD, etc.).

Políticas de autorización

Para garantizar que sólo los usuarios autorizados puedan acceder a determinados recursos o realizar determinadas acciones dentro de la aplicación, los desarrolladores pueden crear políticas de autorización detalladas basadas en funciones de usuario, reclamaciones u otros criterios.

Gestión de fichas

Los tokens de acceso, los tokens de actualización y los tokens de identidad son gestionados por IdentityServer4, que ofrece un método seguro de autenticación de usuarios y permisos para acceder a los recursos protegidos por el servidor de identidad.

Crear y configurar

Para configurar IdentityServer4 en un proyecto de C# en Visual Studio, debe realizar los siguientes pasos:

Creación de un nuevo proyecto en Visual Studio

Tras iniciar la aplicación Visual Studio, puede seleccionar la opción "Crear un nuevo proyecto" o bien elegir el menú Archivo > Añadir > "Nuevo proyecto". A continuación, seleccione "Asp.NET core Web App (Model-View-Controller)" después de elegir "nuevo proyecto". En este tutorial utilizaremos esta aplicación para crear documentos PDF.

 related to Creación de un nuevo proyecto en Visual Studio opción Nuevo proyecto. Luego seleccione ASP.NET Core Web App" />

Seleccione la ruta del archivo e introduzca el nombre del proyecto en el cuadro de texto correspondiente. A continuación, seleccione el .NET Framework necesario haciendo clic en el botón Crear, como se muestra en la siguiente captura de pantalla.

IdentityServer .NET (Cómo funciona para desarrolladores): Figura 3 - A continuación, configura tu proyecto especificando el nombre del proyecto y la ubicación. Haga clic en Siguiente.

A continuación, decida qué marco necesita y pulse el botón Crear.

IdentityServer .NET (Cómo funciona para desarrolladores): Figura 4 - Especifica información adicional como el Framework, el tipo de autenticación, selecciona si deseas configurar para HTTPs y habilitar Docker. Luego haz clic en Crear.

El proyecto de Visual Studio generará ahora la estructura de la aplicación elegida. En este ejemplo estamos utilizando ASP.NET MVC. Para escribir el código, podemos crear un nuevo controlador o utilizar el que ya existe, lo que permite introducir el código y construir/ejecutar el programa.

IdentityServer .NET (Cómo funciona para desarrolladores): Figura 5 - El proyecto de aplicación web ASP.NET Core (MVC) se ha creado con éxito.

Para probar el código, podemos añadir la biblioteca.

Instalar el paquete IdentityServer4

Mediante la CLI .NET o el gestor de paquetes NuGet de Visual Studio, añada el paquete IdentityServer4 al proyecto. Utilizando la consola del gestor de paquetes o un terminal, escriba el siguiente comando para instalar la última versión del paquete:

Install-Package IdentityServer4
Install-Package IdentityServer4
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Configurar IdentityServer4 en proyecto .NET Core

En su aplicación ASP.NET Core, configure IdentityServer4 añadiendo el middleware y los servicios de autenticación necesarios al archivo Startup.cs. Aquí se proporciona un ejemplo de código introductorio para configurar IdentityServer4:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddIdentityServer()
            .AddInMemoryClients(Config.Clients)
            .AddInMemoryIdentityResources(Config.IdentityResources)
            .AddInMemoryApiScopes(Config.ApiScopes)
            .AddInMemoryApiResources(Config.ApiResources)
            .AddTestUsers(Config.Users);
    }
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseIdentityServer();
    }
}
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddIdentityServer()
            .AddInMemoryClients(Config.Clients)
            .AddInMemoryIdentityResources(Config.IdentityResources)
            .AddInMemoryApiScopes(Config.ApiScopes)
            .AddInMemoryApiResources(Config.ApiResources)
            .AddTestUsers(Config.Users);
    }
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        app.UseIdentityServer();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Configurar clientes, recursos de identidad y recursos API

Configurar clientes, recursos de identidad (alcances), configuración, base de datos y recursos API es necesario para IdentityServer4. Estas configuraciones se pueden definir en una clase diferente, como Config.cs:

public class Config
{
    public static IEnumerable<Client> Clients { get; set; }
    public static IEnumerable<IdentityResource> IdentityResources { get; set; }
    public static IEnumerable<ApiScope> ApiScopes { get; set; }
    public static IEnumerable<ApiResource> ApiResources { get; set; }
    public static List<TestUser> Users { get; set; }
}
public class Config
{
    public static IEnumerable<Client> Clients { get; set; }
    public static IEnumerable<IdentityResource> IdentityResources { get; set; }
    public static IEnumerable<ApiScope> ApiScopes { get; set; }
    public static IEnumerable<ApiResource> ApiResources { get; set; }
    public static List<TestUser> Users { get; set; }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Siguiendo estas instrucciones, puede habilitar la autenticación y autorización seguras en sus aplicaciones ASP.NET Core creando y configurando IdentityServer4 en un proyecto C#.

Introducción a IdentityServer4 con IronPDF

Estas instrucciones le guiarán a través de la configuración de IdentityServer4 para una autenticación y código de autorización seguros, y el uso de IronPDF para crear documentos PDF en un proyecto de C#. Siguiendo estas instrucciones aprenderá a crear un proyecto basado en una configuración básica.

¿Qué es IronPDF?

Para su uso en aplicaciones .NET, IronPDF es una biblioteca rica en funciones para interactuar con documentos PDF. Con su amplio conjunto de funciones, los usuarios pueden crear PDF desde cero o a partir de contenido HTML, así como añadir, eliminar o reorganizar secciones de documentos PDF ya existentes. IronPDF ofrece a los desarrolladores una sólida API para producir, modificar y convertir archivos PDF, lo que simplifica el trabajo con PDF en aplicaciones .NET.

IdentityServer .NET (Cómo funciona para desarrolladores): Figura 6 - IronPDF for .NET: La biblioteca PDF de C#

Características principales de IronPDF

Conversión de HTML a PDF

Con IronPDF, puede producir documentos PDF de excelente calidad utilizando contenido HTML, incluyendo JavaScript y CSS. Esta funcionalidad resulta muy útil cuando se crean PDF a partir de sitios web o información dinámica.

Modificación y mejora de PDF

IronPDF le permite alterar documentos PDF que ya existen. Uno puede combinar muchos PDFs en un solo documento, extraer las páginas de un PDF y añadir texto, fotos, marcas de agua o comentarios.

Creación inmediata de un PDF

Con la API de IronPDF, puede añadir mediante programación texto, fotos, formas y otros objetos a documentos PDF recién creados. Esto permite generar dinámicamente facturas en PDF, informes y otros documentos.

Seguridad de los PDF

Puede gestionar el acceso y proteger datos críticos cifrando documentos PDF utilizando IronPDF y agregando seguridad mediante contraseña.

Formularios en PDF

Con IronPDF, los usuarios pueden trabajar con documentos PDF creando, rellenando y enviando formularios PDF, así como introduciendo datos en los campos del formulario.

Texto para llevar

IronPDF es una herramienta que ayuda con la manipulación, análisis y búsqueda de datos de texto al extraer información de texto de documentos PDF.

Transformación a formatos de imagen

IronPDF es útil en situaciones en las que se necesitan fotos en lugar de PDF, ya que puede convertir documentos PDF a formatos de imagen comunes, como PNG, JPEG y BMP.

Instalar IronPDF

Utilice el .NET CLI o el Administrador de Paquetes NuGet para agregar la última versión de IronPDF a su proyecto ahora.

dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
$vbLabelText   $csharpLabel

Integrar IronPDF con IdentityServer4 C#

Configure los servicios y middleware necesarios para IdentityServer4 en su archivo Startup.cs. similar al código visto anteriormente. A continuación, cree un nuevo controlador MVC llamado PdfController.cs para gestionar la generación de PDF mediante IronPDF.

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.Threading.Tasks;
[Authorize]
public class PdfController : Controller
{
    public async Task<IActionResult> GeneratePdf()
    {
        // Create IronPDF Renderer
        var Renderer = new IronPdf.ChromePdfRenderer();
        // HTML content to be converted to PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>";
        // Convert HTML to PDF asynchronously
        var pdfDocument = await Task.Run(() => Renderer.RenderHtmlAsPdf(htmlContent));
        // Return the PDF as a file
        return File(pdfDocument.BinaryData, "application/pdf", "example.pdf");
    }
}
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using IronPdf;
using System.Threading.Tasks;
[Authorize]
public class PdfController : Controller
{
    public async Task<IActionResult> GeneratePdf()
    {
        // Create IronPDF Renderer
        var Renderer = new IronPdf.ChromePdfRenderer();
        // HTML content to be converted to PDF
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a generated PDF document.</p>";
        // Convert HTML to PDF asynchronously
        var pdfDocument = await Task.Run(() => Renderer.RenderHtmlAsPdf(htmlContent));
        // Return the PDF as a file
        return File(pdfDocument.BinaryData, "application/pdf", "example.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

El proceso de integración de IronPDF con IdentityServer4 en una aplicación C# consiste en utilizar IdentityServer4 para configurar la autenticación y autorización seguras de los usuarios, seguido de IronPDF para crear documentos PDF a los que sólo pueden acceder los usuarios autenticados. El ejemplo de código proporcionado tiene IdentityServer4 configurado en el archivo Startup.cs para gestionar la identidad de los usuarios mediante configuraciones en memoria y gestionar las credenciales de los clientes.

Solo los usuarios autorizados pueden acceder a las operaciones del PdfController ya que está protegido con el atributo [Authorize]. Este controlador utiliza un método asíncrono para convertir información HTML a formato PDF utilizando la biblioteca IronPDF. Los pasos del proceso de generación de PDF consisten en crear un renderizador ChromePdfRenderer; transformar texto HTML en un documento PDF; y devolviendo el PDF como archivo de respuesta.

Para combinar una seguridad sólida con capacidades dinámicas de generación de documentos, la integración incorpora la lógica de generación de PDF dentro de un punto final seguro, garantizando que sólo los usuarios que han sido verificados por IdentityServer4 pueden iniciar la creación del PDF. Este método funciona especialmente bien en aplicaciones que necesitan manejar documentos de forma segura, incluyendo la creación de facturas, informes o contenido personalizado basado en información específica del usuario, todo ello mientras se aplica un estricto control de acceso a través de IdentityServer4.

IdentityServer .NET (Cómo Funciona Para Desarrolladores): Figura 7 - PDF de salida generado usando IronPDF con autenticación y autorización de usuario segura proporcionada por IdentityServer4.

Conclusión

En resumen, la integración de IdentityServer4 con IronPDF en un proyecto C# combina con éxito una fuerte seguridad con la capacidad de crear PDFs dinámicos. Al ofrecer un método único y estandarizado para gestionar las identidades de los usuarios y el control de acceso a través de varias aplicaciones y servicios, IdentityServer4 garantiza una autenticación y autorización de usuarios segura. A través del uso de IronPDF, los desarrolladores pueden producir documentos PDF de calidad superior que solo son accesibles por usuarios autorizados, todo basado en datos de usuario verificados.

Esta integración mejora la seguridad y la funcionalidad de la aplicación, lo que la hace perfecta para situaciones como la creación de facturas, informes y contenidos personalizados que requieren un procesamiento seguro de los documentos. En general, la combinación de IdentityServer4 y IronPDF ofrece una opción sólida para crear aplicaciones seguras, efectivas y centradas en el usuario dentro del marco .NET.

Cuando las tecnologías de IronPDF y Iron Software se integran en el conjunto de desarrollo de aplicaciones empresariales, IronPDF puede proporcionar documentación rica en funciones para desarrolladores y soluciones de software premium para clientes y usuarios finales. Esta sólida base también facilitará los proyectos, los sistemas backend y la mejora de los procesos.

IronPDF Suite, una combinación de 9 diferentes productos API de .NET, está disponible por un precio de licencia competitivo!

Estas tecnologías son excelentes opciones para los proyectos modernos de desarrollo de software por su amplia documentación, su activa comunidad de desarrolladores en línea y sus actualizaciones periódicas.

Chipego
Ingeniero de software
Chipego tiene una habilidad natural para escuchar que le ayuda a comprender los problemas de los clientes y a ofrecer soluciones inteligentes. Se unió al equipo de Iron Software en 2023, después de estudiar una licenciatura en Tecnología de la Información. IronPDF e IronOCR son los dos productos en los que Chipego se ha centrado, pero su conocimiento de todos los productos crece día a día, a medida que encuentra nuevas formas de ayudar a los clientes. Disfruta de lo colaborativa que es la vida en Iron Software, con miembros del equipo de toda la empresa que aportan su variada experiencia para contribuir a soluciones eficaces e innovadoras. Cuando Chipego está lejos de su escritorio, a menudo se le puede encontrar disfrutando de un buen libro o jugando al fútbol.
< ANTERIOR
OData C# (Cómo funciona para desarrolladores)
SIGUIENTE >
Flurl C# (Cómo funciona para desarrolladores)