Skip to content

Instantly share code, notes, and snippets.

@migueszitle111
Last active February 21, 2024 07:45
Show Gist options
  • Save migueszitle111/2d6697561da46bfcf3f935bea252abd0 to your computer and use it in GitHub Desktop.
Save migueszitle111/2d6697561da46bfcf3f935bea252abd0 to your computer and use it in GitHub Desktop.
Anteproyecto

Descripción del Anteproyecto

El objetivo es desarrollar una solución integral para gestionar de forma segura las identidades y accesos a los diversos sistemas y recursos informáticos de una organización. Esto permitirá centralizar y estandarizar las políticas y procesos de autenticación, autorización y auditoría sobre todos los activos críticos.

Firefly-Soluci-n-de-Gesti-n-de-Identidades-y-Accesos-soluci-n-que-gestione-de-manera-segura-las-iden

La solución debe permitir:

  • Registro y administración segura de las identidades de los usuarios (empleados, contratistas, partners, etc).
  • Autenticación robusta de credenciales mediante passwords, biometría o tokens de seguridad.
  • Administración granular de roles, grupos y asignación de privilegios de acceso sobre recursos y datos.
  • Registros de auditoría detallados para monitoreo y trazabilidad.
  • Prevención y detección de amenazas internas o externas.
  • Integración con directorios corporativos existentes (LDAP/AD).

Opción 1 - Java con Spring Security:

Se utilizaría el framework Spring Security para implementar la mayor parte de los requerimientos de autenticación, autorización y seguridad.

Para el modelado de datos y accesos se trabajaría con Spring Data JPA y una base de datos relacional como PostgreSQL.

La arquitectura estaría basada en capas desacopladas:

  • Presentación con Spring MVC
  • Lógica de negocios con Spring Services
  • Capa de seguridad con Spring Security
  • Capa de persistencia con Spring Data JPA

Justificación

  • Spring Security es el estándar de facto para la seguridad en aplicaciones Java.
  • Permite implementar fácilmente autenticación robusta, control de accesos, tokens JWT, etc.
  • El ecosistema Spring facilita el desacoplamiento y la escalabilidad.
  • Por su madurez y adopción industrial se considera una apuesta segura.

Opción 2 - Python con Django :

El core del proyecto estaría desarrollado con el framework Django, muy robusto para aplicaciones web.

Se aprovecharían principalmente los módulos de Django para el sistema de usuarios, grupos y permisos.

Django viene con soporte incorporado para OAuth, tokens JWT y diversos proveedores de autenticación.

Para algunas funciones más avanzadas se podrían incorporar módulos adicionales como Django Guardian o Django Rules.

Justificación

  • Django provee por defecto una excelente gestión de usuarios y permisos que se puede expandir.
  • Como framework full-stack ayuda a simplificar y acelerar el desarrollo.
  • Su comunidad activa mejora continuamente los aspectos de seguridad.
  • Ideal para equipos ágiles que busquen soluciones MVP o prototipos rápidos.

Alcances y Limitantes del Proyecto

Alcances:

  • Desarrollo de un sistema integral para la gestión segura de identidades y accesos.
  • Implementación de funcionalidades robustas de autenticación y autorización.
  • Integración con directorios corporativos existentes como LDAP o Active Directory.
  • Registro detallado de auditoría para monitoreo y trazabilidad.
  • Prevención y detección de amenazas internas y externas.

Limitantes:

  • Dependencia de recursos técnicos y humanos para la implementación y mantenimiento del sistema.
  • Posibles restricciones en cuanto a compatibilidad con ciertos sistemas o infraestructuras preexistentes.
  • Limitaciones de tiempo y presupuesto que podrían afectar la extensión y complejidad del proyecto.
  • La efectividad del sistema podría verse comprometida por la falta de adopción o capacitación por parte de los usuarios finales.

Header
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment