protocol - ¿Cuál es el propósito de un Artefacto SAML?
saml sso explained (5)
Ampliando la respuesta de Scott T, el SAML Artifact Profile fue diseñado para mejorar la seguridad. Para evitar que un usuario modifique su aserción de SAML a mitad del tráfico (como cambiar el nombre de usuario, roles, etc.), SAML 2.0 sugiere que los desarrolladores firmen las afirmaciones a través de firmas XML. Sin embargo, las firmas XML son extremadamente vulnerables a los ataques de envoltura de XML debido a problemas en todos los lenguajes de análisis XML existentes. Visite https://www.usenix.org/conference/usenixsecurity12/breaking-saml-be-whoever-you-want-be you-want-be para ver los ataques XML wrapping en acción contra SAML Afirmaciones.
El SAML Artifact Profile resuelve este problema al crear un "artefacto" de uso único que el usuario transfiere al Proveedor de servicios (a través de redirección o publicación) en lugar de la Aserción de SAML. Cuando el Proveedor de servicios recibe el artefacto de uso único, envía una Solicitud de resolución de artefactos SAML (que contiene el artefacto) al Servicio de resolución de artefactos (ARS) del Proveedor de identidad. A continuación, el ARS responde con una respuesta de artefacto SAML (que contiene la aserción SAML del usuario) impidiendo que la aserción SAML sea modificada por el usuario, ya que el proveedor de servicios la recibe directamente a través de un canal secundario.
He visto un montón de diagrama de flujo sobre cómo se transmite entre el proveedor de identidad (IdP), el proveedor de servicios (SP) y el navegador a través de redireccionamientos. Sin embargo, me parece innecesario en este momento, así que sé que me estoy perdiendo algo.
¿Puede alguien proporcionarme un caso de uso en el que se requiera (o sea que sea muy útil) un artefacto SAML en comparación con el hecho de no utilizar uno?
Gracias.
Normalmente, la intención del enlace de artefactos es reducir el flujo de mensajes SAML a través del navegador mismo. Esto podría deberse a restricciones del navegador (navegadores que tienen límites en la cadena de consulta / tamaño de carga POST) o no admite JavaScript (para formularios enviados automáticamente), o incluso para mejorar el modelo de seguridad de cómo se transportan los mensajes SAML. Mediante el uso de artefactos, los datos confidenciales transmitidos a través de la Afirmación / Atributo de SAML no se pasan por el navegador, por lo que pueden ocultarse al usuario final o a los atacantes entre su sitio y el usuario final. Estos datos confidenciales solo se resolverán directamente entre sitios a través de una búsqueda de canal secundario.
La sección 3.6.2 de las especificaciones de enlaces SAML 2.0 lo resume mejor:
El enlace Artefacto HTTP está destinado a casos en los que el solicitante y respondedor SAML necesita comunicarse utilizando un agente de usuario HTTP como intermediario, pero las limitaciones del intermediario impiden o desaconsejan la transmisión de un mensaje completo (o intercambio de mensajes) a través de él. Esto puede ser por razones técnicas o por la reticencia a exponer el contenido del mensaje al intermediario (y si el uso del cifrado no es práctico). Tenga en cuenta que debido a la necesidad de resolver posteriormente el artefacto utilizando otro enlace síncrono, como SOAP, debe existir una ruta de comunicación directa entre el remitente del mensaje SAML y el destinatario en la dirección inversa de la transmisión del artefacto (el receptor del mensaje y artefacto debe poder enviar una solicitud al emisor del artefacto). El emisor del artefacto también debe mantener el estado mientras el artefacto está pendiente, lo que tiene implicaciones para los entornos de carga equilibrada.
Otra razón para utilizar el enlace de artefacto HTTP es que puede usar SSL para garantizar la integridad y confidencialidad de los mensajes de SAML. El solicitante y el contestador de SAML no necesitan firmar, validar, encriptar ni descifrar el mensaje SAML.
Un mensaje SAML se transmite de una entidad a otra, ya sea por valor o por referencia. Una referencia a un mensaje SAML se llama artefacto . El receptor de un artefacto resuelve la referencia enviando una solicitud directamente al emisor del artefacto, que luego responde con el mensaje real al que hace referencia el artefacto.
Consulte SAML 2.0 ,
Sin el artefacto no hay forma de llegar al mensaje real.
Tenga en cuenta que esto solo es necesario cuando se utiliza Enlace de artefactos HTTP. (A diferencia del enlace HTTP POST más común que envía el mensaje SAML).
se puede considerar que está fuera de interés hoy en día, pero el perfil de artefactos también es útil si tiene un ancho de banda bajo entre el agente de usuario y los servidores de sp & idp y un mejor ancho de banda entre sp & idp. La aserción (pesada) no circula desde la idp a la ua y de la ua a la sp y puede mostrar un mejor rendimiento en ciertas circunstancias.