Proyecto

General

Perfil

Acciones

Actividad #24

cerrada

Proteger la API con Autenticación Segura

Añadido por Anibal Pendas Amador hace 4 días. Actualizado hace aproximadamente 23 horas.

Estado:
Cerrado
Prioridad:
Alto
Fecha de inicio:
01/08/2025
Fecha de vencimiento:
03/08/2025
% Completado:

100%

Tiempo estimado:
8:00 h

Descripción

Proteger la API con Autenticación Segura

  • Descripción: Asegurar que los endpoints RESTful del subdominio Integraciones utilicen autenticación basada en tokens (OAuth 2.0) sobre conexiones TLS 1.3, garantizando que solo aplicaciones externas autorizadas puedan acceder a datos del CRM, como listas de contactos, oportunidades, o tareas.

  • Verificación: Probar que las solicitudes a la API sin un token válido son rechazadas y que todas las comunicaciones son cifradas.


Peticiones relacionadas 1 (0 abiertas1 cerrada)

Copiado a Actividad #25: Proteger la API con Autenticación SeguraCerradoAiram Cuesta Dueñas 01/08/202503/08/2025

Acciones
Acciones #1

Actualizado por Anibal Pendas Amador hace 4 días

  • Copiado a Actividad #25: Proteger la API con Autenticación Segura añadido
Acciones #2

Actualizado por Adalberto Barcelo hace 4 días

  • Estado cambiado de Nuevo a En progreso
Acciones #3

Actualizado por Adalberto Barcelo hace 2 días

  • Estado cambiado de En progreso a Resuelto

Implementación de Autenticación OAuth 2.0 en el Subdominio de Integraciones usando ABP Framework

Fecha: 03 de agosto de 2025

Objetivos de la Implementación

  • Proteger los endpoints de la API del subdominio Integraciones utilizando autenticación OAuth 2.0 con tokens de acceso tipo "Bearer".
  • Garantizar que todas las comunicaciones se realizaran sobre conexiones cifradas con TLS 1.3.
  • Verificar que las solicitudes sin un token válido fueran rechazadas con un código de estado 401 Unauthorized.
  • Asegurar que las aplicaciones externas autorizadas pudieran acceder a los datos del CRM de manera segura y controlada.

Pasos Técnicos de la Implementación

1. Configuración de Autenticación OAuth 2.0 en ABP

Se configuró la autenticación OAuth 2.0 utilizando el paquete Volo.Abp.AspNetCore.Authentication.OAuth del framework ABP. Los pasos clave fueron:

  • Instalación del paquete: Se instaló el paquete Volo.Abp.AspNetCore.Authentication.OAuth en el proyecto utilizando el comando:

    abp add-package Volo.Abp.AspNetCore.Authentication.OAuth
    
  • Configuración del esquema de autenticación: En el archivo Startup.cs, se configuró el esquema de autenticación para aceptar tokens Bearer, especificando la autoridad (servidor de autenticación) y la audiencia (identificador de la API).

    services.AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = "Bearer";
        options.DefaultChallengeScheme = "Bearer";
    })
    .AddJwtBearer(options =>
    {
        options.Authority = "https://tu-servidor-de-autorizacion";
        options.Audience = "integraciones-api";
    });
    
  • Protección de endpoints: Se aplicó el atributo [Authorize] a los controladores de la API que gestionan los datos del CRM, como el controlador de contactos.

    [Authorize]
    public class ContactosController : AbpController
    {
        [HttpGet]
        public IActionResult ObtenerContactos()
        {
            return Ok(new { Message = "Lista de contactos" });
        }
    }
    

2. Habilitación de TLS 1.3 para Conexiones Seguras

Para garantizar que todas las comunicaciones estuvieran cifradas con TLS 1.3, se configuró el servidor web Kestrel en el archivo Program.cs:

  • Configuración de Kestrel: Se habilitó explícitamente TLS 1.3 y se aseguró la presencia de un certificado SSL válido.

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.ConfigureKestrel(options =>
                {
                    options.ConfigureHttpsDefaults(httpsOptions =>
                    {
                        httpsOptions.SslProtocols = SslProtocols.Tls13;
                    });
                });
                webBuilder.UseStartup<Startup>();
            });
    
  • Verificación del cifrado: Se utilizaron herramientas como OpenSSL y la consola de desarrollador del navegador para confirmar que las conexiones utilizaban TLS 1.3.

3. Pruebas de Seguridad y Autenticación

Se realizaron pruebas exhaustivas para verificar la correcta implementación de la autenticación y el cifrado:

  • Prueba sin token: Se envió una solicitud GET a un endpoint protegido sin incluir un token de acceso.

    • Resultado: La API devolvió un código de estado 401 Unauthorized, confirmando que las solicitudes no autorizadas fueron rechazadas.
    curl -X GET https://tu-api/integraciones/contactos
    
  • Prueba con token válido: Se obtuvo un token de acceso desde el servidor de autenticación y se incluyó en la solicitud.

    • Resultado: La API devolvió un código de estado 200 OK con los datos solicitados, confirmando el acceso autorizado.
    curl -X GET https://tu-api/integraciones/contactos -H "Authorization: Bearer <tu-token>"
    
  • Verificación del cifrado: Se inspeccionó la conexión utilizando la consola de desarrollador del navegador (F12 > Security) y se confirmó que el protocolo utilizado era TLS 1.3.


Resultados y Beneficios

La implementación de OAuth 2.0 y TLS 1.3 en el subdominio Integraciones proporcionó los siguientes beneficios:

  • Seguridad mejorada: Solo las aplicaciones externas autorizadas pudieron acceder a los datos del CRM, gracias a la autenticación basada en tokens.
  • Protección de datos: Todas las comunicaciones estuvieron cifradas con TLS 1.3, asegurando la confidencialidad e integridad de los datos transmitidos.
  • Cumplimiento de requisitos: La API cumplió con los estándares de seguridad establecidos, garantizando que las solicitudes no autorizadas fueran rechazadas y que las conexiones fueran seguras.

Recomendaciones para Futuras Mejoras

  • Monitoreo continuo: Implementar herramientas de monitoreo para detectar y responder a posibles intentos de acceso no autorizado.
  • Actualización de certificados: Asegurarse de renovar los certificados SSL antes de su expiración para mantener la seguridad de las conexiones.
  • Auditorías de seguridad: Realizar auditorías periódicas para verificar la integridad de la implementación y ajustar configuraciones según sea necesario.

Conclusión

La implementación de la autenticación OAuth 2.0 y el cifrado TLS 1.3 en el subdominio Integraciones fue completada con éxito, cumpliendo con los objetivos de seguridad establecidos. Las pruebas realizadas confirmaron que la API está protegida adecuadamente y que solo las aplicaciones autorizadas pueden acceder a los datos del CRM de manera segura. Este enfoque no solo mejoró la seguridad de la aplicación, sino que también proporcionó una base sólida para futuras integraciones y expansiones del sistema.

Acciones #4

Actualizado por Adalberto Barcelo hace 2 días

  • % Completado cambiado de 0 a 100
Acciones #5

Actualizado por Anibal Pendas Amador hace aproximadamente 23 horas

  • Estado cambiado de Resuelto a Cerrado

Buen trabajo

Acciones

También disponible en: Atom PDF