Estoy haciendo una aplicación web Java EE que requiere inicio de sesión único con Active Directory.Recuperar usuario actual de Windows en la aplicación web Java EE para inicio de sesión único con fines
La aplicación ya no solicitará un nombre de usuario y contraseña. El proceso de autenticación requeriría la recuperación del usuario actual con sesión iniciada en Windows. Una vez que tengo el usuario, necesito consultar a Active Directory para obtener los roles para ese usuario conectado. Soy consciente de que esto excluirá a los usuarios que no sean de Windows, pero esta es una aplicación interna y todos los clientes usan Windows.
Tengo que implementar el SSO en 2 aplicaciones web Java EE. 1 aplicación se está ejecutando en GlassFish v2.1.1 (JDK 1.6) y la otra se está ejecutando en Tomcat (JDK 1.5).
Básicamente, mi problema principal es cómo recuperar el usuario con sesión iniciada actualmente en Windows.
Ya he encontrado JAAS y Kerberos. Amablemente corrígeme si estoy equivocado. Según tengo entendido, estos son protocolos de autenticación y no tienen la función para recuperar el usuario actual con sesión de Windows.
Ya he intentado lo siguiente, pero siempre recibo null
o el nombre de usuario del servidor.
System.getProperty("user.name");
new com.sun.security.auth.module.NTSystem().getName();
request.getUserPrincipal().getName();
System.getenv("USERNAME");
- JCIF NTLM autenticación HTTP en Tomcat
- LoginContext
Estoy abierto a cualquier sugerencia.
¿Desea que el usuario haya iniciado sesión en la computadora cliente o en la computadora servidor? –
Me gustaría que el usuario haya iniciado sesión en la máquina cliente. Gracias. – Amy