Tema 14

14. Protocolos de identidad y acceso: OAuth 2.0, OpenID Connect y SAML

Los ecosistemas modernos de identidad no funcionan solo con ideas abstractas de SSO o federación. Necesitan protocolos concretos que definan cómo se piden permisos, cómo se transporta identidad, cómo se validan tokens y cómo se establece confianza entre aplicaciones. OAuth 2.0, OpenID Connect y SAML cumplen ese papel, pero resuelven problemas distintos y suelen confundirse con frecuencia.

Objetivo Distinguir qué resuelve cada protocolo
Enfoque Conceptual, arquitectónico y práctico
Resultado Elegir mejor entre OAuth 2.0, OIDC y SAML según el caso

14.1 Introducción

En identidad y acceso, muchas confusiones nacen de usar nombres de protocolos como si fueran sinónimos de “login moderno”. En realidad, cada uno tiene un propósito distinto. OAuth 2.0 no fue creado originalmente para autenticar usuarios. OpenID Connect agrega identidad sobre OAuth. SAML viene de una tradición distinta, muy asociada a federación y SSO empresarial.

Comprender estas diferencias evita errores de diseño como usar OAuth para algo que requiere autenticación explícita, o adoptar SAML en escenarios donde APIs y aplicaciones móviles se benefician más de enfoques basados en tokens modernos.

Este tema se centra en el mapa conceptual y arquitectónico. Más adelante veremos APIs y tokens con más detalle, pero aquí importa entender quién participa, qué se intercambia y qué problema resuelve cada protocolo.

14.2 Qué es un protocolo en este contexto

En este ámbito, un protocolo define reglas para que sistemas distintos puedan interoperar en procesos de autenticación, federación o autorización delegada. Establece mensajes, roles, validaciones y formatos que permiten compartir confianza de forma verificable.

Sin protocolos estandarizados, cada integración requeriría acuerdos ad hoc difíciles de mantener, auditar y asegurar. Por eso estos protocolos existen: no para agregar complejidad por sí misma, sino para hacer interoperable un problema que naturalmente involucra múltiples actores.

14.3 OAuth 2.0: qué es realmente

OAuth 2.0 es un framework de autorización delegada. Su propósito principal es permitir que una aplicación obtenga acceso limitado a recursos protegidos en nombre de un usuario o de una entidad, sin necesidad de conocer la contraseña del usuario.

La idea original no es “hacer login”, sino delegar acceso. Por ejemplo, permitir que una aplicación acceda a cierta información de una cuenta bajo consentimiento y alcance definido.

Esto es importante porque mucha gente dice “autenticación con OAuth” como si el protocolo por sí mismo resolviera identidad. En sentido estricto, OAuth 2.0 trata de autorización, no de autenticación del usuario final como objetivo primario.

14.4 Actores típicos en OAuth 2.0

En OAuth 2.0 suelen aparecer estos roles:

  • Resource Owner: dueño del recurso, a menudo el usuario.
  • Client: aplicación que solicita acceso.
  • Authorization Server: emite tokens tras validar condiciones y consentimiento.
  • Resource Server: API o servicio que protege los recursos.

Esta separación permite que una aplicación cliente acceda a recursos sin recibir directamente las credenciales del usuario para el sistema destino.

14.5 Qué resuelve OAuth 2.0

OAuth 2.0 resuelve sobre todo delegación de acceso. Algunos escenarios típicos son:

  • Una aplicación web que accede a una API con permisos acotados.
  • Un cliente móvil que obtiene un token para consumir recursos protegidos.
  • Una integración entre servicios con scopes específicos.
  • Una plataforma que permite consentir acceso parcial a información del usuario.

En todos estos casos, la pregunta principal es “¿puede esta aplicación acceder a este recurso con este alcance?”, no necesariamente “¿quién es exactamente el usuario?” en términos de identidad federada completa.

14.6 Por qué OAuth 2.0 no basta para autenticación por sí solo

Aunque muchas implementaciones usan OAuth 2.0 como parte de un flujo de login, el protocolo por sí solo no estandariza completamente cómo una aplicación obtiene información de identidad del usuario autenticado. Puede existir un token válido para acceso a recursos sin que eso implique una semántica uniforme de identidad para el cliente.

Por eso aparece OpenID Connect, que se apoya en OAuth 2.0 y agrega una capa explícita para autenticación e identidad.

14.7 OpenID Connect: autenticación sobre OAuth 2.0

OpenID Connect, u OIDC, es una capa de identidad construida sobre OAuth 2.0. Su función es permitir que una aplicación confirme la identidad del usuario autenticado y obtenga información estandarizada sobre él.

En otras palabras:

  • OAuth 2.0 responde principalmente a autorización delegada.
  • OIDC agrega autenticación federada e identidad sobre ese marco.

Esto convierte a OIDC en una opción muy frecuente para login moderno en aplicaciones web, móviles y ecosistemas API-friendly.

14.8 Qué agrega OIDC sobre OAuth 2.0

OIDC agrega elementos clave que OAuth no definía con el mismo foco:

  • Un ID Token que representa identidad autenticada.
  • Claims estandarizados sobre el usuario.
  • Flujos orientados explícitamente a autenticación.
  • Convenciones para descubrimiento, user info y validación de identidad.

Esto hace que una aplicación pueda decir con mayor claridad no solo “tengo autorización para acceder a algo”, sino también “sé quién es el usuario según un proveedor confiable”.

14.9 Casos típicos de uso de OpenID Connect

  • Login en aplicaciones web modernas.
  • Inicio de sesión en aplicaciones móviles.
  • SSO entre aplicaciones basadas en web y APIs.
  • Integración con proveedores de identidad cloud.

OIDC suele encajar bien cuando el ecosistema ya trabaja con tokens, APIs y arquitecturas distribuidas. Por eso se volvió dominante en muchos entornos modernos.

14.10 SAML: federación clásica orientada a SSO empresarial

SAML, o Security Assertion Markup Language, es un estándar de federación más antiguo que todavía sigue muy presente en entornos empresariales. Está especialmente asociado a SSO entre aplicaciones corporativas y a relaciones entre un proveedor de identidad y un service provider.

Su enfoque gira en torno a afirmaciones de identidad y confianza entre dominios, con un estilo más típico de aplicaciones web empresariales tradicionales.

Aunque hoy muchas arquitecturas nuevas prefieren OIDC para ciertos escenarios, SAML sigue siendo muy común en integraciones empresariales y SaaS corporativo.

14.11 Cómo pensar SAML en comparación con OIDC

Una forma práctica de verlo es la siguiente:

  • SAML: muy fuerte históricamente en SSO empresarial basado en navegador y federación tradicional.
  • OIDC: más natural en ecosistemas modernos de aplicaciones web, móviles y APIs.

No se trata de declarar uno “mejor” en abstracto. Se trata de ver qué encaja mejor con el entorno, las integraciones existentes, la experiencia esperada y los sistemas involucrados.

14.12 Diferencias de enfoque entre OAuth 2.0, OIDC y SAML

Protocolo Problema principal que resuelve Uso típico
OAuth 2.0 Autorización delegada Acceso a APIs y recursos protegidos
OpenID Connect Autenticación e identidad sobre OAuth Login moderno, SSO, aplicaciones web y móviles
SAML Federación de identidad y SSO empresarial Aplicaciones corporativas y SaaS tradicionales

14.13 Error frecuente: decir “OAuth para login” sin matices

Una frase muy común en la práctica es “hacemos login con OAuth”. En muchos contextos se entiende qué quiere decir, pero técnicamente es imprecisa. Si lo que realmente se busca es autenticar usuarios y recibir identidad estandarizada, el protagonista suele ser OIDC sobre OAuth 2.0, no OAuth “solo”.

Esta distinción importa porque evita arquitecturas ambiguas y decisiones inseguras basadas en supuestos erróneos sobre tokens y semántica de identidad.

14.14 Tokens, afirmaciones y claims

Estos protocolos trabajan con artefactos que representan autorización o identidad. Dependiendo del protocolo y del flujo, pueden aparecer:

  • Access tokens: para acceder a recursos.
  • ID tokens: para representar identidad autenticada en OIDC.
  • Afirmaciones SAML: declaraciones estructuradas sobre la identidad del usuario.

Lo importante no es solo recibir uno de estos artefactos, sino validarlo correctamente: emisor, audiencia, vigencia, firma y condiciones contextuales.

14.15 Protocolos y experiencia de usuario

La elección del protocolo también impacta experiencia y arquitectura. SAML suele aparecer en flujos más centrados en navegador y portales empresariales. OIDC suele sentirse más natural en aplicaciones modernas con SPAs, móviles y backends que consumen APIs. OAuth 2.0 aparece de forma transversal cada vez que el problema principal es acceso delegado a recursos.

Esto no significa que cada protocolo esté completamente encerrado en un solo estilo, pero sí que existen afinidades prácticas claras.

14.16 Riesgos frecuentes al usar estos protocolos

  • Usar OAuth 2.0 como si definiera autenticación completa sin una capa de identidad explícita.
  • Aceptar tokens o afirmaciones sin validar adecuadamente firma, audiencia o expiración.
  • Confiar en claims sin entender su significado, origen o alcance.
  • Mapear atributos externos a privilegios internos críticos sin control suficiente.
  • Elegir un protocolo por costumbre, sin considerar el tipo de aplicación y arquitectura.

14.17 Cómo elegir entre estos protocolos

No hay una regla única, pero algunas orientaciones son útiles:

  • Si el problema principal es delegar acceso a recursos o APIs, pensar primero en OAuth 2.0.
  • Si además se necesita identidad autenticada para login moderno, pensar en OIDC.
  • Si el entorno es corporativo y la integración histórica o el SaaS objetivo usa federación tradicional, SAML puede ser la opción natural.

La elección real también depende de capacidades del proveedor de identidad, ecosistema existente, requisitos regulatorios y perfil de las aplicaciones integradas.

14.18 Qué debes recordar de este tema

  • OAuth 2.0 resuelve principalmente autorización delegada, no autenticación completa por sí solo.
  • OpenID Connect agrega autenticación e identidad sobre OAuth 2.0.
  • SAML sigue siendo muy relevante en SSO y federación empresarial tradicional.
  • No conviene usar estos nombres como sinónimos de “login moderno”.
  • La validación correcta de tokens o afirmaciones es tan importante como elegir el protocolo adecuado.
  • La elección debe responder al tipo de aplicación, arquitectura y necesidad concreta de identidad o acceso.

14.19 Conclusión

OAuth 2.0, OpenID Connect y SAML son piezas centrales del ecosistema moderno de identidad, pero cada una cumple un papel diferente. Entender bien esa diferencia evita errores de arquitectura y permite diseñar integraciones más claras, seguras y sostenibles. Lo importante no es memorizar siglas, sino saber qué problema se está resolviendo realmente.

En el próximo tema nos enfocaremos en autenticación y autorización en APIs: scopes, claims, JWT e introspección, donde estos conceptos se vuelven especialmente concretos.