Tema 20

20. Diseño de una arquitectura moderna de autenticación, autorización e identidad

Una arquitectura moderna de identidad y acceso no se construye uniendo piezas aisladas con nombres atractivos. Requiere un modelo coherente de identidades, autenticación fuerte, emisión de tokens, autorización por recurso, gobierno de privilegios, observabilidad y capacidad de adaptación al riesgo. Este último tema integra todo el curso en una visión práctica: cómo pensar una solución IAM de forma completa, qué componentes necesita y qué decisiones de diseño marcan la diferencia entre una implementación robusta y una simplemente funcional.

Objetivo Integrar todos los conceptos del curso en una arquitectura coherente
Enfoque Diseño práctico, decisiones y trade-offs
Resultado Saber qué debe resolver una solución IAM moderna y cómo organizarlo

20.1 Introducción

A lo largo del curso vimos que identidad, autenticación y autorización no son lo mismo, que los tokens no reemplazan la autorización real, que los privilegios deben gobernarse a lo largo del ciclo de vida y que la observabilidad es tan importante como la decisión inicial de acceso. El paso final es unir esas piezas en una arquitectura.

El objetivo no es diseñar un “producto ideal” universal. Cada organización tiene restricciones de negocio, legado, regulación y presupuesto. Pero sí es posible definir principios estables que ayuden a construir una solución sana, escalable y defendible.

20.2 Qué debería resolver una arquitectura moderna

Una solución IAM moderna debería ser capaz de responder al menos estas preguntas:

  • quién es cada identidad y cuál es su fuente autoritativa;
  • cómo se autentica según el nivel de riesgo y sensibilidad;
  • qué credenciales o tokens se emiten y con qué alcance;
  • cómo se decide acceso a aplicaciones, APIs y datos;
  • cómo se conceden, revisan y revocan privilegios;
  • cómo se auditan decisiones y eventos relevantes;
  • cómo se protege tanto a usuarios humanos como a identidades no humanas.

Si alguna de estas preguntas queda sin dueño claro, la arquitectura probablemente acumule puntos ciegos.

20.3 Principios de diseño que conviene preservar

Más allá de las herramientas elegidas, una buena arquitectura suele apoyarse en principios como:

  • separación clara entre identidad, autenticación y autorización;
  • mínimo privilegio por defecto;
  • federación y centralización donde aporten consistencia, no complejidad innecesaria;
  • uso de estándares para interoperabilidad;
  • revocación y trazabilidad como capacidades reales, no teóricas;
  • segmentación y autorización cercana al recurso;
  • tratamiento explícito del riesgo y del contexto.

20.4 Componentes típicos de la solución

En una organización moderna suelen aparecer varios bloques complementarios:

  • fuente autoritativa de identidad: por ejemplo RR.HH., CRM o sistema maestro;
  • directorio: almacena cuentas, grupos y atributos operativos;
  • Identity Provider: autentica y federa identidad;
  • Authorization Server: emite tokens para acceso a recursos;
  • motor de políticas o servicios de autorización: evalúan condiciones de acceso;
  • sistema de aprovisionamiento: alta, cambio y baja de accesos;
  • capa de observabilidad y auditoría: registra, correlaciona y permite investigar;
  • integraciones con aplicaciones, APIs, SaaS y sistemas legacy: consumen o aplican decisiones.

No siempre todo vive en plataformas distintas, pero sí conviene que las responsabilidades estén conceptualmente separadas.

20.5 Flujo de alto nivel para usuarios humanos

Un flujo moderno y razonable para usuarios humanos suele verse así:

  • la aplicación delega autenticación en un IdP;
  • el IdP valida credenciales, aplica MFA y resuelve señales de riesgo;
  • se emiten tokens o afirmaciones adecuadas al protocolo y al cliente;
  • las aplicaciones y APIs validan esos artefactos;
  • cada recurso aplica su autorización de negocio con base en roles, atributos, relaciones o políticas;
  • los eventos clave quedan registrados y correlacionados para monitoreo y auditoría.

Este flujo evita que cada aplicación tenga que reinventar el login, pero no la exime de tomar decisiones propias sobre acceso real a recursos.

20.6 Flujo de alto nivel para APIs e identidades no humanas

En integraciones máquina a máquina el patrón cambia. Puede no haber un usuario final involucrado. En ese caso importa autenticar al cliente o servicio, emitir credenciales adecuadas, limitar su alcance y gobernar la vida de sus secretos o tokens.

Una arquitectura madura debería evitar cuentas técnicas permanentes con privilegios excesivos. En su lugar conviene usar credenciales efímeras, scopes reducidos, rotación automatizada y trazabilidad clara sobre qué servicio actuó, bajo qué contexto y contra qué recurso.

20.7 Dónde debe vivir la autorización

Una de las decisiones más importantes es definir cuánto se centraliza y cuánto permanece en la aplicación o API. La respuesta práctica suele ser híbrida.

Conviene centralizar elementos comunes como identidad autenticada, emisión de tokens, atributos compartidos, políticas transversales o reglas contextuales. Pero la autorización fina sobre recursos de negocio suele pertenecer al sistema que entiende el dominio: la API, el backend o el servicio que protege el dato.

Si se centraliza demasiado, el IAM termina cargando lógica específica difícil de mantener. Si se descentraliza por completo, cada sistema resuelve el acceso a su manera y se pierde consistencia.

20.8 Modelo de permisos: roles, atributos y relaciones

La arquitectura moderna rara vez se apoya en un único modelo puro. Muchas organizaciones combinan varios enfoques:

  • RBAC para organizar permisos frecuentes y operativos;
  • ABAC para reglas sensibles al contexto o a atributos;
  • ReBAC o reglas por relación para recursos compartidos, colaboración y multitenancy.

La clave no es elegir una sigla y aplicarla a todo, sino usar el modelo adecuado según el problema. Forzar RBAC para todas las decisiones suele producir explosión de roles y excepciones difíciles de gobernar.

20.9 Gestión del ciclo de vida como parte de la arquitectura

Sin buen aprovisionamiento y desprovisionamiento, la arquitectura queda incompleta. El diseño debe contemplar cómo nacen las cuentas, cómo cambian, cómo se revisan y cómo se eliminan o reducen sus privilegios cuando ya no corresponden.

Esto aplica tanto a usuarios humanos como a cuentas técnicas. Un sistema moderno no debería depender de procesos manuales dispersos para quitar accesos críticos o revocar privilegios que surgieron de un cambio organizacional.

20.10 Sesiones, tokens y revocación

Las sesiones y los tokens son una de las decisiones más sensibles del diseño. Una arquitectura moderna debería equilibrar experiencia, rendimiento y control.

Eso suele implicar:

  • tokens de vida acotada;
  • refresh tokens protegidos y gobernados;
  • validación estricta de issuer, audience, expiración y firma;
  • mecanismos razonables de revocación o reevaluación;
  • reautenticación para operaciones sensibles;
  • manejo seguro de cookies y sesiones en aplicaciones web.

La arquitectura falla cuando trata los tokens como si fueran pases permanentes difíciles de retirar.

20.11 Riesgo, contexto y controles adaptativos

En arquitecturas modernas, el acceso ya no depende solo de identidad estática. También se incorporan señales de riesgo, postura de dispositivo, sensibilidad del recurso y comportamiento anómalo. Esto permite aplicar autenticación adaptativa, step-up authentication y acceso continuo basado en riesgo.

La clave es usar estas señales para mejorar la decisión, no para reemplazar fundamentos sólidos. El contexto complementa a la identidad, no la sustituye.

20.12 Observabilidad y gobierno como partes estructurales

La arquitectura no termina cuando se decide acceso. También debe poder explicar qué ocurrió, por qué ocurrió y bajo qué reglas. Por eso logging estructurado, auditoría, trazabilidad, revisión de accesos y métricas operativas son componentes estructurales del diseño.

Una organización con login centralizado pero sin evidencia confiable de uso, cambios de privilegio y decisiones críticas sigue teniendo una arquitectura débil.

20.13 Ejemplo de arquitectura integrada

Un esquema razonable para una organización con aplicaciones web, móviles y APIs podría ser:

  • fuente autoritativa conectada al sistema de identidad;
  • directorio central para cuentas, grupos y atributos operativos;
  • IdP para autenticación, MFA, SSO y federación;
  • Authorization Server para emitir access tokens e ID tokens según el flujo;
  • APIs que validan tokens y aplican autorización propia sobre recursos;
  • motor de políticas compartido para reglas transversales o de alto nivel;
  • sistema de aprovisionamiento y revisiones periódicas de acceso;
  • plataforma de observabilidad y auditoría para correlacionar el ciclo completo.

Ese esquema puede desplegarse con productos distintos, siempre que el diseño preserve claridad de roles y decisiones.

20.14 Trade-offs que conviene asumir explícitamente

Decisión Ventaja principal Costo o riesgo asociado
Centralizar autenticación Consistencia y mejor gobierno Dependencia crítica del componente central
Usar tokens auto-contenidos Validación distribuida con baja latencia Revocación menos inmediata
Aplicar autorización granular en cada API Mejor alineación con reglas de negocio Mayor esfuerzo de implementación y disciplina
Incorporar riesgo y contexto Decisiones más finas y adaptativas Más complejidad y dependencia de telemetría confiable

Diseñar bien implica aceptar estos trade-offs de forma consciente, no descubrirlos tarde en producción.

20.15 Errores comunes al construir la arquitectura

  • confundir autenticación centralizada con autorización ya resuelta;
  • dejar el aprovisionamiento fuera del diseño principal;
  • usar roles para todo, incluso donde atributos o relaciones serían mejores;
  • ignorar identidades no humanas o tratarlas como usuarios comunes;
  • no diseñar revocación, auditoría y trazabilidad desde el inicio;
  • confiar demasiado en el perímetro de red o en un frontend para aplicar controles reales.

20.16 Criterios para evaluar madurez de la solución

Una arquitectura más madura suele mostrar señales como estas:

  • identidades con fuentes autoritativas claras;
  • SSO y MFA bien integrados sin proliferación de credenciales locales;
  • tokens y sesiones de vida razonable con validación consistente;
  • autorización cercana al recurso y no delegada al frontend;
  • gobierno de privilegios, revisiones y desprovisionamiento efectivos;
  • capacidad de detectar, investigar y demostrar eventos relevantes.

La madurez no se mide solo por cantidad de productos, sino por coherencia entre identidad, acceso, operación y gobierno.

20.17 Qué debes recordar de este tema

  • Una arquitectura IAM moderna integra identidad, autenticación, autorización, ciclo de vida, observabilidad y riesgo.
  • Centralizar autenticación no elimina la necesidad de autorización fina en aplicaciones y APIs.
  • El modelo de acceso suele combinar roles, atributos y relaciones según el caso.
  • Usuarios humanos e identidades no humanas deben tratarse con el mismo rigor conceptual.
  • Revocación, trazabilidad y revisiones de acceso deben ser capacidades reales del diseño.
  • La calidad de la arquitectura depende más de la claridad de responsabilidades que de la cantidad de herramientas.

20.18 Conclusión

Diseñar una arquitectura moderna de autenticación, autorización e identidad exige pensar en el sistema completo: desde cómo nace una identidad hasta cómo se audita una decisión crítica meses después. No se trata de sumar mecanismos aislados, sino de construir una cadena coherente de confianza, privilegio limitado, contexto, control y evidencia.

Con esto cerramos el curso. La idea central que debería quedar es simple y exigente a la vez: autenticar bien es necesario, autorizar bien es imprescindible, y gobernar bien todo el ciclo de acceso es lo que convierte una solución técnica en una arquitectura realmente madura.