/ / solo verifique SAML autenticado, no reenvíe - java, spring, spring-security, saml, spring-saml

solo marque SAML autenticado, no reenvíe - java, spring, spring-security, saml, spring-saml

Estoy usando la biblioteca spring-security-saml2 paraautenticar a mi usuario contra un IdP de SAML. Funciona bien, pero ahora me gustaría VERIFICAR solo si un usuario está autenticado con ese IdP (y evitar un reenvío automático para pedirle credenciales al usuario).

El caso de uso es que quiero agregar otro personalizadomecanismos de autenticación, y solo reenviar a una página de inicio de sesión una vez que TODOS los mecanismos fallaron. Por lo tanto, me gustaría verificar si hay una sesión SAML activa; si no, verifique a través de OAuth, ..., si no está autenticado en algún lugar, envíe al usuario a una página de inicio de sesión.

¿Es esto posible con la biblioteca spring-security-saml2 tal como está o tendría que bifurcarla / cambiarla?

Respuestas

0 para la respuesta № 1

Puedes sincronizar sesiones SAML http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf. Pero será más fácil si realiza su propia sesión (con un pequeño tiempo de espera y restablece el tiempo de espera de cada solicitud) después de ser redirigido desde el idp (solicitud de respuesta exitosa)


0 para la respuesta № 2

Uno puede agregar el isPassive atribuya a una Solicitud de autenticación SAML para obtener el comportamiento que está buscando. Esto se controla llamando a setPassive(true) sobre el WebSSOProfileOptions objeto, como se muestra en https://github.com/spring-projects/spring-security-saml/blob/master/core/src/test/java/org/springframework/security/saml/websso/WebSSOProfileHoKImplTest.java#L263.