Capacidad

Backend SSO

SSO moderno al frente, modelo de autenticación legacy al fondo — sin cambiar ni una línea de código del backend.

La mayoría de las aplicaciones empresariales se construyeron antes de que existieran estándares modernos de identidad federada como SAML u OIDC. Estas aplicaciones generalmente reconocen al usuario mediante una cabecera HTTP, un valor Basic-Auth o una cookie de sesión en la que ya confían. TR7 AAM ejecuta la capa de autenticación moderna frente a la aplicación: el login, MFA, el acceso condicional y la confianza del dispositivo se evalúan aquí. La identidad autenticada se traduce entonces al formato exacto que el backend ya acepta y se reenvía a la aplicación. De este modo, las aplicaciones legacy obtienen una experiencia de SSO moderno sin ningún cambio en su código, su modelo de sesión existente o su lógica de identidad del backend. El usuario inicia sesión una vez; AAM lleva la identidad correcta de forma segura a cada aplicación. Por seguridad, cualquier cabecera de identidad suplantada o no confiable del usuario se elimina primero. Solo el valor de identidad de confianza producido por AAM se reenvía al backend. Las reglas tienen alcance por ruta; el logout y la sesión perdida son gestionados por el mismo motor. El resultado: las aplicaciones legacy se incorporan al SSO moderno sin cambios de código, los usuarios trabajan con una única sesión, y la organización obtiene control centralizado de identidad y acceso.

5
Formas de inyección en producción — cabecera, Basic, Bearer, cookie, SAML-SP
0
Líneas de código del backend modificadas para habilitar SSO moderno
Eliminar + Inyectar
Disciplina aplicada a cada valor — la suplantación entrante falla antes de que se escriba el valor de confianza

Los backends legacy nunca fueron diseñados para aceptar identidad moderna

Muchas aplicaciones que funcionan dentro de una empresa — portales internos, sistemas de facturación, consolas de operaciones, paneles de administración de proveedores, herramientas legacy de línea de negocio — se construyeron antes de que SAML u OIDC fueran estándar. Típicamente reconocen al usuario no mediante tokens modernos, sino a través de una cabecera HTTP, una credencial Basic-Auth o una cookie de sesión en la que ya confían.

Migrar estas aplicaciones a SSO moderno parece sencillo en teoría: reescribir la ruta de autenticación del backend, agregar soporte SAML/OIDC y conectar la aplicación al proveedor de identidad central. En la práctica casi nunca ocurre. El código fuente puede ser antiguo, la aplicación puede ser propiedad de un proveedor, el cambio puede romper un flujo de trabajo regulado, o el coste simplemente no está justificado para una herramienta interna que funciona bien.

Las organizaciones quedan entonces atrapadas entre dos malas opciones: dejar las aplicaciones legacy fuera del perímetro de identidad moderno, o construir una integración frágil y separada para cada una. El resultado es una experiencia de usuario fragmentada, control de acceso descentralizado y lógica de identidad dispersa en el modelo legacy de cada backend.

El enfoque correcto es posicionar la capa de acceso moderna frente a la aplicación. El usuario primero pasa por la identidad central, MFA, acceso condicional y comprobaciones de confianza del dispositivo; la identidad autenticada se traduce entonces a una forma que el backend ya entiende. La aplicación obtiene una experiencia de SSO moderno sin ningún cambio de código.

Pero esta transición debe realizarse con cuidado. Si las cabeceras de identidad suplantadas del usuario se reenvían al backend sin ser eliminadas, cualquiera puede agregar su propio cabecera X-Auth-User a su solicitud y suplantar a otro usuario. El gateway debe eliminar los valores entrantes no confiables, inyectar solo la identidad de confianza que produce él mismo, y delimitar esto estrictamente por ruta.

El logout, la pérdida de sesión y el estado de identidad iniciado desde el backend también deben fluir a través del mismo motor. De lo contrario, el usuario puede aparecer desconectado en el portal mientras la sesión del backend permanece activa, o la sesión del backend puede caerse sin que la capa de acceso lo detecte.

Backend SSO no consiste en forzar la reescritura de aplicaciones legacy — se trata de poner el control de identidad moderno frente a la aplicación, y traducir de forma segura la identidad del usuario autenticado al lenguaje que el backend ya acepta.

Nuestro enfoque

Un objeto de configuración por backend, cinco formas de inyección, coordinadas con el resto del motor de acceso.

Eliminar cada valor entrante, luego inyectar el autenticado

Cada regla de inyección primero elimina cualquier copia entrante de la cabecera, cookie o valor de Authorization de destino, luego inyecta la versión derivada de la sesión autenticada. Un usuario que envíe su propio "X-Auth-User" no puede suplantar a otra persona — su cabecera se elimina antes de que el gateway agregue la de confianza.

Cinco formas de inyección para los patrones legacy más comunes

Cabeceras personalizadas (X-Auth-User, X-Forwarded-User, cualquier cosa que espere el backend), Authorization Basic para aplicaciones que requieren un par usuario:contraseña, Authorization Bearer para backends compatibles con tokens, fusión de valor de Cookie para aplicaciones que leen una cookie con nombre, y SAML-SP para backends que esperan una aserción SAML firmada. Cada inyección tiene su propia configuración; un backend puede usar varias formas a la vez.

Condiciones por inyección delimitan cada regla a las rutas correctas

Cada regla de inyección lleva su propia expresión de condición — solo aplicar en la ruta de administración, solo cuando esté presente un atributo de sesión específico, solo para un tenant. El mismo backend puede recibir identidad más rica en rutas privilegiadas y un subconjunto mínimo en rutas públicas.

La sesión perdida del backend y el logout iniciado por el backend fluyen de vuelta a través del gateway

Cuando el backend informa que la sesión del usuario se ha perdido (una forma de respuesta conocida por servicio), o cuando el propio backend desconecta al usuario, AAM detecta la señal, limpia la sesión del lado del gateway, y redirige según la política configurada. La precedencia logout-wins garantiza que la limpieza siempre se ejecute antes de cualquier inyección posterior.

Capacidades

Cinco formas de inyección en producción, la disciplina de eliminación de entrada que las hace seguras, más el roadmap para inyecciones de protocolo superior.

Inyección de cabecera — cualquier nombre de cabecera en el que confíe el backend

La forma más simple y común. Configure un nombre de cabecera (X-Auth-User, X-Forwarded-User, REMOTE_USER, lo que lea el backend) y la variable inteligente que produce el valor (nombre de usuario, email, lista de grupos, nombre para mostrar). La cabecera se elimina de las solicitudes entrantes, luego se vuelve a agregar desde la sesión autenticada antes de que la solicitud llegue al backend.

Inyección Authorization Basic para aplicaciones que requieren usuario:contraseña

Para aplicaciones legacy que se autentican mediante HTTP Basic, el gateway inyecta Authorization: Basicderivado de una variable inteligente de nombre de usuario y una credencial almacenada. El backend continúa realizando su verificación nativa de Basic-Auth; el usuario nunca ve la credencial, nunca la escribe, y no puede exfiltrarla.

Inyección Authorization Bearer para backends compatibles con tokens

Para backends que ya hablan tokens Bearer (APIs internas, microservicios, aplicaciones modernas de intranet) AAM inyecta Authorization: Bearer. La fuente del token es configurable por servicio — un token firmado emitido por AAM, un token de backend de larga duración mantenido en almacenamiento gestionado por el operador, o cualquier otra forma que el backend verificará.

Inyección de valor de cookie con fusión segura en una sola cabecera

Las aplicaciones que leen la identidad de una cookie con nombre se atienden con inyección de valor de cookie. El gateway fusiona el par name=value inyectado en la cabecera Cookie de la solicitud sin sobrescribir las otras cookies — la más propensa a errores de las cuatro formas de estilo cabecera, manejada con lógica de fusión explícita en lugar de sobrescrituras ingenuas.

Inyección SAML-SP — una aserción SAML firmada por solicitud

Para backends que esperan una aserción SAML firmada en cada solicitud, el gateway acuña una aserción SAML 2.0 desde la sesión autenticada, la firma con la clave de firma SAML de AAM, y la reenvía en la cabecera configurada al backend. Típico para integraciones de federación de identidad del sector público y backends SaaS empresariales. El usuario inicia sesión con un IdP moderno; el backend recibe una aserción SAML fresca y delimitada en cada solicitud.

Disciplina de eliminación de entrada aplicada a cada valor inyectado

Cada inyección está emparejada con una eliminación entrante del mismo destino. Un usuario que establezca X-Auth-User en su propia solicitud, que envíe una Cookie falsificada con un valor de identidad manipulado, o que reproduzca una cabecera Authorization de otra parte no puede hacer que el valor supere el gateway. La inyección solo se ejecuta después de que la eliminación haya liberado el slot.

Condiciones por inyección para alcance y precedencia

Cada regla de inyección puede adjuntar una condición — mismo lenguaje de expresión que la política de acceso condicional. Solo inyectar en la ruta de administración; solo inyectar cuando el usuario está en un grupo específico; solo inyectar la variante privilegiada cuando esté presente un atributo. Las condiciones se compilan de forma segura respecto a la precedencia ACL para que múltiples reglas en un backend se compongan correctamente.

Protección solo-autenticado alrededor de cada inyección

Todas las inyecciones están protegidas detrás del estado autenticado — se ejecutan solo cuando la solicitud lleva una sesión AAM válida. Un usuario que evite la autenticación a través de una ruta mal configurada no puede recibir accidentalmente credenciales de backend inyectadas; una solicitud anónima siempre llega al backend sin inyección.

Roadmap — formas de inyección Kerberos y NTLM

Las formas de inyección de protocolo superior — delegación restringida Kerberos para backends que requieren un ticket de servicio, NTLM para entornos Windows más antiguos — están en el roadmap. El objeto de configuración y la infraestructura condicional ya los acomodan; el trabajo pendiente es el runtime específico del protocolo.

Profundidad operacional

Los mecanismos que hacen segura la inyección a nivel de cabecera en el borde de acceso.

01

Apilamiento de condiciones seguro respecto a la precedencia en tiempo de compilación

Las condiciones por inyección se componen con otras decisiones basadas en ACL del gateway (estado de autenticación, política de acceso, selección de backend). El compilador de condiciones utiliza un patrón de entradas adicionales para que las condiciones de inyección siempre se evalúen después de la autenticación y la política, nunca antes — una regla por inyección no puede invertir accidentalmente el resultado de una decisión de política de mayor precedencia.

02

Fetches de variables condicionales-frontend a través del dispatcher

Cuando una inyección necesita un valor que no está en la bolsa de sesión — un valor derivado de una fetch por solicitud (expansión de grupos, búsqueda de atributos) — el dispatcher emite una fetch condicional que solo se ejecuta cuando la condición de la inyección coincide. Los backends que nunca ven una inyección nunca pagan el coste de fetch del valor.

03

Detección de sesión perdida del backend con firma de respuesta configurable

Cada servicio puede declarar la firma de respuesta que significa «mi sesión se ha perdido» — un código de estado específico, una cabecera de respuesta específica, un marcador en el cuerpo. Cuando el gateway ve esa firma, establece un flag de sesión perdida, limpia la sesión del lado del gateway, y redirige según la política configurada.

04

Limpieza del logout iniciado por el backend y cadena de redirección

Cuando el propio backend desconecta al usuario — típicamente respondiendo con una firma de logout conocida — el gateway ejecuta una limpieza en tres pasos: limpiar las cookies del lado del gateway, eliminar el registro de sesión, y redirigir a través del destino configurado. La precedencia logout-wins garantiza que esta ruta supere cualquier inyección en vuelo.

05

Manejo de valores cifrados, nunca registrados en texto claro

Las credenciales y tokens utilizados por las inyecciones se almacenan cifrados en el almacén de configuración y nunca se escriben en los logs de acceso en texto claro. Las entradas de auditoría registran que una inyección se ejecutó en una solicitud, no qué valor llevaba. Los operadores ven la política; la carga en el cable permanece en el cable.

06

Roadmap — flujo de reautenticación silenciosa cuando se pierde la sesión del backend

Un flujo de reautenticación silenciosa que usa un 302 al daemon de AAM para restablecer una sesión de backend sin enviar al usuario de vuelta a una página de login está en el roadmap. La propagación de logout iniciada por AAM — empujar una señal de logout hacia cada backend que recibió una identidad inyectada — también está en el roadmap.

Dónde lo usan los equipos

SSO moderno sobre el portal de intranet existente

Un portal interno que ha confiado en X-Remote-User durante una década sigue leyendo X-Remote-User. El gateway ejecuta SAML/OIDC moderno en el borde, luego inyecta la misma cabecera que siempre vio. Sin despliegue en el backend, sin corte de migración.

Authorization-Bearer frente a microservicios

Un cluster de microservicios internos requiere autenticación con token Bearer pero no quiere ejecutar un flujo de identidad por servicio. El gateway emite un token firmado por solicitud y lo inyecta; cada servicio verifica el token contra las claves del gateway.

Un único login, muchas formas de autenticación en el backend

Un despliegue multi-aplicación incluye una aplicación que requiere Basic Auth, otra que requiere una cabecera personalizada, y otra que requiere una cookie. Un gateway AAM gestiona el login una vez; cada backend obtiene la forma que espera, simultáneamente, con condiciones por ruta.

Propagación de identidad con calidad de auditoría

Los regímenes de cumplimiento que requieren una cadena de identidad clara — «quién estaba autenticado cuando esta solicitud llegó al backend» — obtienen esa cadena producida por el flujo de auditoría del gateway. Los valores de cabecera, las condiciones de inyección y el sujeto autenticado se registran juntos.

Preguntas frecuentes

¿Cómo funciona esto sin cambiar el código del backend?
El backend sigue haciendo lo que ya hace — leer X-Remote-User, aceptar credenciales Basic-Auth, validar un token Bearer, reconocer una cookie de sesión. El gateway ejecuta el login moderno en el borde y luego produce la forma exacta en la que el backend ya confía. Desde la perspectiva del backend nada cambia; desde la perspectiva del usuario, iniciaron sesión con SAML, OIDC o MFA en la puerta principal.
¿Qué pasa si un usuario envía su propio encabezado X-Auth-User para suplantar otra identidad?
Su cabecera se elimina en la ruta entrante antes de que el gateway agregue la suya propia. Cada regla de inyección está emparejada con una eliminación incondicional del mismo destino — nombre de cabecera, nombre de cookie o valor de Authorization. Un valor suplantado no puede sobrevivir más allá del gateway porque el slot se limpia antes de que se escriba el valor de confianza.
¿Puede el gateway enviar una aserción SAML firmada a un backend que espera una por solicitud?
Sí. La inyección SAML-SP produce una aserción SAML 2.0 desde la sesión autenticada en cada solicitud, la firma con la clave de firma SAML de AAM, y la reenvía en la cabecera configurada al backend. Usos típicos: integraciones de federación de identidad del sector público, backends SaaS empresariales que esperan una aserción firmada. La delegación restringida Kerberos y la inyección NTLM — para entornos Windows legacy que demanden esos protocolos — permanecen en el roadmap.
¿Qué ocurre cuando la sesión del backend expira pero la sesión de AAM sigue siendo válida?
Cada servicio puede declarar la firma de respuesta que significa «sesión del backend perdida» — un estado, cabecera o marcador de cuerpo específico. Cuando el gateway ve esa firma, marca la sesión del lado del gateway, limpia el estado, y redirige al usuario según la política configurada. Un flujo de reautenticación silenciosa que restablece la sesión del backend sin enviar al usuario a una página de login está en el roadmap.
¿Puede un gateway AAM ejecutar diferentes formas de inyección para diferentes backends al mismo tiempo?
Sí. Cada backend tiene su propio objeto de configuración que lista las inyecciones que necesita. Un backend puede requerir una cabecera personalizada, otro puede requerir Basic Auth, un tercero puede requerir Bearer más una fusión de cookie — todos detrás de un gateway AAM y una experiencia de login. Las condiciones por inyección permiten refinar además qué rutas dentro de un backend obtienen qué inyección.

SSO moderno al frente, autenticación legacy al fondo

Desplegaremos Backend SSO contra sus aplicaciones reales — preservando sus modelos de confianza existentes, eliminando la credencial de manos del usuario, y produciendo una cadena de identidad con calidad de auditoría para cada solicitud.