Éstos son algunos SAML 2 opciones que puede utilizar.
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.
¿Puede dar ejemplos de 'opciones existentes de SP de Java'? – mahatmanich