Я делаю веб-приложение Java EE, которое требует единого входа с Active Directory.
Приложение больше не запрашивает имя пользователя и пароль. Процесс аутентификации потребует извлечения текущего пользователя Windows, вошедшего в систему. Когда у меня есть пользователь, мне нужно запросить Active Directory, чтобы получить роли для этого вошедшего в систему пользователя. Я знаю, что это исключит пользователей, не использующих Windows, но это внутреннее приложение, и все клиенты используют Windows.
Мне нужно реализовать SSO в двух веб-приложениях Java EE. Одно приложение работает на GlassFish v2.1.1 (JDK 1.6), а другое - на Tomcat (JDK 1.5).
По сути, моя основная проблема заключается в том, как получить текущего пользователя, вошедшего в Windows.
Я уже встречал JAAS и Kerberos . Пожалуйста, поправьте меня, если я ошибаюсь. Насколько я понимаю, это протокол аутентификации, и у них нет функции для получения текущего окна пользователя, вошедшего в систему.
Я уже пробовал следующее, но всегда получаю null
или собственное имя пользователя сервера .
System.getProperty ("имя пользователя");
новый com.sun.security.auth.module.NTSystem (). GetName ();
request.getUserPrincipal (). GetName ();
System.getenv («ИМЯ ПОЛЬЗОВАТЕЛЯ»);
Я открыт для любых предложений.