2012-01-10 11 views
6

Tengo un par de preguntas de implementación de SAML para aclarar mi confusión ...Para implementar SAML, ¿necesito instalar Shibboleth SP en mi host?

Necesito implementar SSO en una aplicación web java.

  1. Para hacerlo, ¿necesito Shibboleth SP instalado en mi anfitrión like so, o puedo proporcionar la funcionalidad a través de SP OpenSAML?

  2. Estoy asumiendo que shibboleth está haciendo lo mismo que OpenSAML pero sólo a nivel de servidor web, mientras que OpenSAML lo hará en el lado del software. Es esa suposición correcta?

EDIT: Así shibboleth (según Scott Cantor) es construir con OpenSAML ... qué mi suposición todavía mantienen sin embargo?

  1. lo que será necesario utilizar OpenSAML? ¿Solo la URL de IdP y un registro con el idP?

  2. ¿Necesito proporcionar un directorio SP, p. ActiveDirectory/LDAP?

EDIT: Gracias por las respuestas, pero alguien puede responder directamente a las preguntas arriba y elaborar sobre ellos ...

Respuesta

3

¿Qué se necesitará para usar OpenSAML? ¿Solo la URL de IdP y un registro con el idP?

Necesita Java y un contenedor web, e incluye la biblioteca opensaml en su guerra.

Necesita almacenar en caché los metadatos IdP localmente o buscarlos cada vez que desee enviar AuthnRequest o procesar SAMLResponse. También debe registrar sus metadatos SP en el lado IdP.

Si está utilizando Shibboleth como su IdP, los metadatos SP deben configurarse en el archivo conf/relying-party.xml.

¿Necesito proporcionar un directorio de SP, p. ActiveDirectory/LDAP?

Para iniciar sesión en IdP, debe configurar ldap o servidor de base de datos en el lado IdP y configurarlo en conf/attribute-resolve.xml y conf/login.config.

1

Usted debe enviar este tipo de preguntas a las listas de correo pertinentes dirigido por el Proyecto Shibboleth.

OpenSAML es un kit de herramientas de muy bajo nivel para implementar soluciones SAML, Shibboleth es un paquete SSO para aplicaciones web compatibles con SAML que se construye con OpenSAML. Construir soluciones de seguridad es complejo y requiere experiencia. Si no tienes esa experiencia, harás un mal trabajo y OpenSAML no estará documentado de forma tal que un desarrollador típico pueda construir una solución desde cero.

Considere usar una implementación completa, ya sea Shibboleth u otra cosa. Si no puede vivir con Apache y el código nativo y necesita Java, entonces debe probar una de las opciones existentes de Java SP que existen. Incluso si fueran inadecuados, debe basarse en ellos y no duplicarlos.

+1

¿Puede dar ejemplos de 'opciones existentes de SP de Java'? – mahatmanich

13

actualizaciones para solucionar sus ediciones:

Éstos son algunos SAML 2 opciones que puede utilizar.

Shibboleth SP es un productoque implementa SAML 2.0 para ti, pero OpenSAML es sólo una bibliotecacon el que se podría implementar una solución SAML 2.0. La biblioteca en sí es de bajo nivel y ni siquiera está cerca de ser una solución SSO. OpenSAML no es una solución SAML 2.0 en sí misma.

Para usar OpenSAML o cualquier solución SAML 2.0, deberá intercambiar los metadatos como se indica a continuación. Con OpenSAML también tendrá que generar a mano un archivo XML para su propio MetaData. Será mucho trabajo como se indica a continuación. Los productos SAML 2.0 generarán ese archivo XML MetaData para usted y también generarán las claves RSA necesarias para el cifrado y la firma de las Afirmaciones SAML 2.0. Con OpenSAML, tendrá soporte API para cargar partes de los archivos XML y API para generar y analizar sus Afirmaciones, pero estará escribiendo el código Java que realmente construye la interacción SSO.

El SP hace no necesariamente necesita ActiveDirectory/LDAP, pero necesitará algún tipo de directorio en su aplicación web que realice un seguimiento de los usuarios. Si su aplicación web ya tiene una noción de usuarios con cierta información de identificación que puede usar para correlacionarlos con la noción de usuarios de IdP, puede asignarlos en su aplicación web basándose en los valores de Atributo en sus afirmaciones SAML 2.0. (Si su aplicación web no le importa quiénes son los usuarios, entonces puede simplemente permitir el acceso a la aplicación en función de que el usuario sea "válida".)

-

Integración Shibboleth2 SSO con una web de Java la aplicación no es muy difícil. Usar OpenSAML para implementar el SSO funcionaría, pero sería mucho más esfuerzo que integrar un servidor Apache con Shibboleth.

El uso de Shibboleth requiere que tenga Apache2 con el módulo Shibboleth habilitado y que tiene instalado el daemon Shibboleth SP. Típicamente, esos estarían juntos en la misma caja. Si está utilizando Tomcat para alojar la aplicación web Java, le recomiendo que use mod_proxy_ajp para comunicarse entre el servidor HTTP Apache2 y Tomcat. De esta forma, puede elegir las variables proporcionadas por Shibolleth como atributos de solicitud de servlet. (Debe configurar el prefijo de la variable como "AJP_" en shibboleth2.xml.)

El paquete Shibboleth SP ya maneja todos los escenarios estándar de SSO de SAML que puede esperar encontrar, pero intenta implementar incluso uno de ellos con OpenSAML directamente en su aplicación Java está lleno de peligros, tanto para hacer que funcione como para hacerlo seguro. También aumentará el tamaño de su aplicación web si usa OpenSAML. Vale la pena señalar que el SP de Shibboleth no está escrito en Java, por lo que no tendrá ejemplos de uso de OpenSAML para eso, pero es posible que pueda obtener alguna información al ver el código IdP de Shibboleth, que es una aplicación web de Java.

En cualquier caso, deberá intercambiar sus metadatos SP (creados fácilmente con el paquete Shibboleth SP) con su proveedor de identidad y también obtener los metadatos del proveedor de identidad en su SP (también es fácil con el paquete Shibboleth SP). simplemente configure un MetadataProvider).

La documentación de Shibboleth en línea le ayudará mucho una vez que se acostumbre a usarla.

Creo que tendrá muchas más posibilidades de éxito si puede usar el paquete Shibboleth SP en lugar de implementar una solución SAML 2 SSO con las bibliotecas OpenSAML. No puedo hablar con las otras soluciones Java SSL de SAML 2, pero todas parecen grandes y demasiado productivas en comparación con un simple Shibboleth 2 SP.

-3

Sí, debe instalar SP en su servidor o su máquina. Y dependería de su servidor web, como IIS o Apache.

Cuestiones relacionadas