Процесс Java, определяющий выполнение пользовательских групп NT

Я знаю, что могу вызывать Active Directory и выполнять запросы, если у меня есть имя пользователя и пароль в открытом виде. (Я не хочу этого делать)

В VB я могу установить уровни авторизации по группам NT, и пользователю не нужно ни вводить свой пароль, ни сохранять его в текстовом файле. (Насколько я понимаю, это имеет доступ к билету Windows AD).

Я также знаю, что могу выйти в командную строку и проанализировать вывод — получить группы пользователей — это проблематично.

Как я могу воспроизвести получение NT-групп исполняющего пользователя без пароля в Java?

(Начинает звучать так, будто мне придется вызывать Win32 API с помощью JNA, чтобы получить билет kerberos — я надеюсь, что есть более простой способ.)


person hawkeye    schedule 15.07.2011    source источник


Ответы (1)


Вам следует разделить вопрос на две части, потому что вы смешиваете аутентификацию с авторизацией. Kerberos очень хорошо работает с Java в Windows с некоторыми оговорками из-за MS. Сказав это, используйте билет Kerberos с предоставленным принципалом для аутентификации в AD и получения значений пользователя memberOf, чтобы увидеть, в каких группах находится пользователь.

person Michael-O    schedule 16.07.2011
comment
Не могли бы вы подсказать о предостережениях? - person hawkeye; 17.07.2011
comment
Первая часть выполнена: stackoverflow.com/questions/6721939/ - person hawkeye; 17.07.2011
comment
Предостережения заключаются в том, что 1. вам придется вмешиваться в реестр, поскольку Windows блокирует доступ к LSA для получения билета сеанса (TGT) для запроса билетов службы. Гугл для. 2. вы должны поддерживать krb5.conf так же, как в Unix. - person Michael-O; 17.07.2011
comment
Круто - какие-нибудь намеки на то, что такое изменение реестра, или мне нужно задать другой вопрос? - person hawkeye; 18.07.2011
comment
Пожалуйста, постарайтесь быть более активными в своем расследовании, мне потребовалось 10 секунд, чтобы найти ответ на первый вопрос здесь, в stackoverflow: stackoverflow.com/questions/3239495/ - person Michael-O; 18.07.2011