Аутентификация JAAS в домене Windows

Используя предоставленное имя пользователя, пароль и имя домена, как я могу получить логическое значение, указывающее, прошел ли пользователь успешную аутентификацию на основном контроллере домена? Аутентификация должна выполняться с использованием протокола Kerberos для контроллеров домена Windows. Заранее спасибо, Дэн


person Community    schedule 27.04.2009    source источник


Ответы (2)


Существует бесплатная реализация модуля входа JAAS только для Windows и аутентификатора SSO Negotiate (Kerberos / NTLM): Waffle.

person dB.    schedule 25.05.2010
comment
Не пользовался, но выглядит отлично. - person user23969; 22.07.2011

Вам нужно либо написать свой собственный, либо использовать для этого сторонний модуль аутентификации. Когда я делал это, в JDK не было ничего доступного, поэтому я использовал этот инструмент . Обратите внимание, что это GPL, но оттуда вы можете поучиться. Вам нужно будет создать conf. файл, описывающий ваш модуль аутентификации, и загрузите его в вашу JVM с помощью свойства java.security.auth.login.config (например, с помощью -D или любым другим способом). В случае с Tagish это выглядит примерно так:

NTLogin {com.tagish.auth.win32.NTSystemLogin требуется returnNames = true returnSIDs = false defaultDomain = "домен"; };

Еще вам нужно указать файл конфигурации kerberos через свойство java.security.krb5.conf. У меня нет под рукой подробностей об этом файле, но вы можете легко найти его в сети - погуглите о krb5.conf. Настройки в этом файле должны соответствовать вашему домену Windows и другим настройкам Windows.

Это немного сложно настроить, но для меня это сработало очень хорошо, довольно надежно.

person Dima    schedule 27.04.2009