Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
S
sigic_documentacion
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Aranza Judith Aguirre Dolores
  • sigic_documentacion
  • Wiki
    • Seguridad
  • Manejo de Identidad, Acceso, Autenticación y Autorización

Manejo de Identidad, Acceso, Autenticación y Autorización

Last edited by Helbert Marcel Picazo Cardona May 16, 2025
Page history
En el contexto del desarrollo de sistemas modernos, la gestión de identidades y accesos (IAM - Identity and Access Management) se ha convertido en un componente esencial para garantizar la seguridad, escalabilidad y gobernanza de las aplicaciones. En este proyecto, se ha optado por implementar **Keycloak** como solución centralizada de manejo de identidad, autenticación y autorización; solución basada en estándares abiertos ampliamente aceptados como **OAuth 2.0**, **OpenID Connect (OIDC)** y **SAML 2.0**.

Contexto general

2.1. Multiplicidad de usuarios y servicios

En escenarios donde múltiples aplicaciones comparten un mismo ecosistema, mantener autenticación separada en cada sistema conlleva riesgos como:

  • Duplicación de usuarios y contraseñas
  • Procesos inconsistentes de inicio de sesión
  • Baja trazabilidad de accesos

2.2. Requisitos de seguridad avanzados

  • Necesidad de autenticación multifactor (MFA)
  • Protección contra ataques de repetición o token hijacking
  • Auditoría y cumplimiento normativo

2.3. Escalabilidad y extensibilidad

  • Integración con distintos tipos de clientes: SPA, apps móviles, backend APIs
  • Delegación de autenticación a servicios externos (Google, LDAP, etc.)
  • Administración centralizada de políticas de acceso

3. Alternativas consideradas

Opción Descripción breve Limitaciones clave
Autenticación propia Código personalizado con base de datos local Difícil de escalar, poca trazabilidad, inseguro
Firebase Auth Servicio administrado Cerrado, dependiente del ecosistema Google
Auth0 SaaS de IAM comercial Costoso a gran escala, limitaciones en planes
Keycloak Open-source, extensible, estándares abiertos Requiere hosting y administración propios

Se concluye que Keycloak proporciona un equilibrio adecuado entre flexibilidad, cumplimiento, extensibilidad y costo.


4. Estándares y protocolos que soporta Keycloak

Keycloak está alineado con los principales estándares de seguridad:

Protocolo / Norma Descripción técnica
OAuth 2.0 (RFC 6749) Delegación de acceso sin compartir credenciales
OpenID Connect (OIDC) Capa de identidad sobre OAuth2, permite autenticación federada
JWT (RFC 7519) Tokens firmados y auto-contenidos para validación descentralizada
PKCE (RFC 7636) Protección contra ataques de interceptación en apps móviles
TLS 1.2+ Canal seguro requerido en todas las comunicaciones
NIST 800-63B Cumple requisitos para autenticación digital robusta

5. Beneficios de usar Keycloak

5.1. Seguridad

  • Tokens firmados con JWT y RSA o ECDSA
  • Control granular de sesiones, políticas de expiración y revocación
  • Auditoría de eventos (inicio/cierre de sesión, intentos fallidos, cambios de datos)

5.2. Flexibilidad e interoperabilidad

  • Soporta múltiples métodos de autenticación: username/password, OTP, WebAuthn, federación externa
  • Compatible con cualquier cliente que entienda OAuth2/OIDC
  • Delegación de identidad a LDAP, Active Directory, redes sociales (Google, Facebook, etc.)

5.3. Administración centralizada

  • Panel administrativo completo basado en web
  • Configuración de usuarios, roles, grupos y clientes en un solo lugar
  • Separación por realms para ambientes multi-tenant o proyectos separados

5.4. Open Source y Comunidad

  • Licencia Apache 2.0
  • Comunidad activa y respaldo de Red Hat
  • Extensible mediante SPI (Service Provider Interfaces)

6. Casos de uso que habilita en el proyecto

Caso de Uso Implementación con Keycloak
Login único entre aplicaciones (SSO) Mediante cookies y redirecciones OIDC
Autenticación en apps móviles Usando flujo Authorization Code + PKCE
Acceso a APIs REST seguras Verificación de Access Token JWT en backend
Asignación de roles por proyecto Roles y grupos definidos por realm y cliente
MFA en apps críticas Configuración de segundo factor por usuario
Auditoría y trazabilidad Consola administrativa + exportación de logs

7. Costos y mantenimiento

  • Costo de licencia: $0 (open source)
  • Requisitos de infraestructura: contenedor Docker, mínimo 1GB RAM, almacenamiento persistente
  • Mantenimiento requerido:
    • Actualizaciones de seguridad periódicas
    • Configuración inicial y backup de configuración
    • Supervisión de logs

8. Conclusión

La implementación de Keycloak como sistema de autenticación centralizado responde a una necesidad real de estandarizar, asegurar y escalar la gestión de identidades del sistema. Su soporte para estándares abiertos garantiza interoperabilidad y cumplimiento normativo, mientras que su naturaleza open-source permite adaptaciones específicas sin costos adicionales de licenciamiento.

⚠ IMPORTANTE
Al adoptar esta herramienta, el proyecto se posiciona con una arquitectura sólida, segura y moderna, preparada para integrar múltiples tipos de aplicaciones y clientes, minimizando riesgos de seguridad y facilitando la administración a largo plazo.

Clone repository
  • Entorno
  • Guía básica de codificación
  • Manejo de Identidad, Acceso, Autenticación y Autorización
  • Manejo de Indentidad, Acceso, Autenticación y Autorización
  • Seguridad
  • Home
  • Entorno
    • Guía de Preparación del Sistema Base para Servicios Docker en Ubuntu Server 24.04
  • Guía-básica-de-codificación
    • Buenas prácticas de codificación
    • Comentarios en el código
    • Estilo de codificación
    • Estructura del código fuente
    • Guías de estilo oficiales
    • Nombre
  • Seguridad
    • Manejo de Identidad, Acceso, Autenticación y Autorización
    • Servicio de Autenticación y Autorización con Keycloak
More Pages

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.