2009-01-27 21 views
8

Estoy tratando de implementar servicios SOAP habilitados para SAML por primera vez y tengo algunas preguntas conceptuales sobre el rol de un servicio de token seguro (STS) en una implementación de SAML.¿Necesitamos absolutamente un STS para SAML?

usuario ---> --- Aplicación Web SOAP/SAML -> aplicaciones de mensajería

Básicamente, el escenario es que el usuario inicia sesión en la aplicación web utilizando su nombre de usuario y contraseña, aplicación web a su vez autenticar y autorizar al usuario con un servicio externo, en la autenticación/autorización exitosa, la aplicación web crea una aserción SAML de Sender Vouches con el usuario como sujeto, firma la aserción con su clave privada, empaqueta la aserción en un sobre oculto utilizando WS-S y hace una Llamada SOAP a la aplicación de mensajería. Una vez que la aplicación de mensajería recibe la solicitud, verifica la firma con la clave pública de la aplicación web, retira las declaraciones de autenticación y de atributo de la aserción SAML y, en función de ellas, impone la política de autenticación en el punto final.

Como puede ver en el escenario anterior, no hubo STS externo involucrado, sin embargo, la mayoría de la literatura que he leído en SAML sugiere que se requiere absolutamente un STS. La pregunta que tengo es que estoy haciendo algo mal con el escenario anterior, ya que no veo ninguna razón por la que absolutamente necesito un STS. Seguro que sería bueno tener un STS, pero al menos en mi opinión, la ausencia de esto no me impide implementar SAML para mi caso de uso.

Respuesta

21

No, no necesita un STS para SAML tokens en servicios web. El STS intercambia un token (donde 'token' incluye cosas como nombre de usuario + contraseña) por otro, por lo que es útil porque el consumidor del servicio web puede enviar un token de entrada (normalmente nombre de usuario + contraseña o un certificado de firma + X.509 para uso simple casos) al STS y obtener una aseveración SAML todo listo para funcionar.

Ahora, si usted tiene la capacidad de crear tokens SAML que serán aceptados por su proveedor de servicios web, ¡hágalo! No es necesario STS: el mensaje SOAP real en el cable es idéntico ya sea que un STS participó o no en su creación.

escribí un par de entradas de blog hace unos años que detallan algunos de esto:

Access Manager 7.1 Beta in Java EE Tools/NetBeans 5.5 Enterprise Pack

Anatomy of a SAML-Secured SOAP Message

Sun Access Manager 7.1 ha sido reemplazado por OpenAM, pero los principios siguen siendo los mismo. En particular, la segunda entrada es independiente de cualquier producto real.

+0

Eso tiene sentido. gracias por tu comentario –

0

Puede aprovechar cualquiera de los kits de herramientas de código abierto de SAML. Si su aplicación está escrita en Java y se ejecuta en JBoss o Weblogic, el soporte de SAML está incorporado.

Cuestiones relacionadas