Как автоматически войти на сайт, используя системные учетные данные? - PullRequest
3 голосов
/ 03 ноября 2010

Мне нужно разработать веб-приложение для пользователей интранета.Я не хочу, чтобы они вводили учетные данные при каждом посещении сайта.Он должен автоматически загружаться из имени пользователя и пароля системы.т.е. если у них есть действительные имя пользователя и пароль, они должны иметь возможность войти в приложениеЯ использую Java.Как выполнить это требование?

Ответы [ 7 ]

5 голосов
/ 01 сентября 2016

Вы можете использовать waffle и COM4J, чтобы решить эту проблему. Необходимо помнить, что вафля работает только с учетными данными Windows. Вы можете использовать вафельный API для автоматического входа в коде вашего пользовательского интерфейса. COM4J API полезен, если вы хотите написать код для автоматического входа на стороне Java.

5 голосов
/ 31 августа 2016

Вы можете попробовать вафлю Вафлю для единого входа.
Вы можете добиться автоматической аутентификации с вафлей. Я использовал его для интранет-проекта веб-приложения. Для получения дополнительной информации из активного каталога вы можете использовать COM4J COM4J

4 голосов
/ 06 сентября 2016

SSO (единый вход) может использоваться для автоматического входа с использованием системных учетных данных. Waffle используется для реализации единого входа в активном каталоге. Это согласовывает между локальной машиной и активным каталогом. Но все параметры не могут быть получены с помощью Waffle после аутентификации пользователя. Для этого можно использовать Com4j .

3 голосов
/ 03 ноября 2010

То, что вы ищете, называется встроенной аутентификацией Windows. Чтобы реализовать его, ваш сервер должен поддерживать аутентификацию по Active Directory (с использованием Kerberos) и быть настроенным на реагирование на неаутентифицированные запросы браузера с помощью WWW-Authenticate: NTLM или заголовка Negotiate.

Я не могу сказать вам точно, как это сделать, не зная, какую серверную платформу вы используете. Но при условии, что ваша платформа поддерживает JAAS, вот сообщение в блоге, в котором приведены некоторые основы по его настройке - http://webmoli.com/2009/08/29/single-sign-on-in-java-platform/

1 голос
/ 03 ноября 2010

Учетные данные NTLM могут быть переданы на сервер, который поддерживает аутентификацию SPNEGO (Kerberos) или NTLM (обе из которых составляют собственную аутентификацию Windows). К сожалению, не так много таких серверов поддерживают это по умолчанию. Microsoft IIS - один из таких серверов, который поддерживает требуемый режим аутентификации.

Насколько мне известно, для достижения этого в веб-приложении на Java вам потребуется проверить поддержку WNA на сервере приложений. Например, WebLogic Server в некоторой степени поддерживает это, но для этого требуется веб-сервер Microsoft IIS.

Возможно также, что решения с единым входом также поддерживают проверку учетных данных в Microsoft Active Directory, но характер бесшовной интеграции может варьироваться от одного продукта к другому.

Кроме того, используемый браузер также имеет значение. WNA доступна начиная с IE 5 и в некоторых версиях Firefox. Похоже, что он доступен в Google Chrome начиная с версии 5 . NTLM-аутентификация была первоначально введена и в Opera 9 .

1 голос
/ 03 ноября 2010

Если это специфично для «Windows», вы можете использовать NTLM-аутентификацию.Например, http://davenport.sourceforge.net/ntlm.html
Я не уверен, поможет ли это, но вы можете посмотреть, как можно использовать HTTP-клиент http://hc.apache.org/httpclient-3.x/authentication.html#NTLM

0 голосов
/ 03 ноября 2010

используйте простой ftpclient (apache предоставляет один) для копирования файлов. Это даст лучшую производительность

...