Получить текущего пользователя Windows в веб-приложении Java EE для целей единого входа

Я делаю веб-приложение 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 или собственное имя пользователя сервера .

  1. System.getProperty ("имя пользователя");
  2. новый com.sun.security.auth.module.NTSystem (). GetName ();
  3. request.getUserPrincipal (). GetName ();
  4. System.getenv («ИМЯ ПОЛЬЗОВАТЕЛЯ»);
  5. JCIF NTLM HTTP-аутентификация в Tomcat
  6. LoginContext

Я открыт для любых предложений.

11
задан BalusC 24 August 2017 в 03:52
поделиться