2016-05-19 4 views
0

У нас есть приложение на базе Java, основанное на Java, которое мы хотим использовать Kerberos для Single Sign On.Java kinit, определяющий область нижнего регистра из домена AD

Мы не с помощью каких-либо конфигурационных файлов Kerberos, как krb5.conf или login.conf, потому что мы хотим, чтобы наши клиенты, как простой и изменить упругая, насколько это возможно.

В течение нескольких недель он работал хорошо, только большинство людей должны были повторно ввести свой пароль Windows для аутентификации. Вероятно, позже я напишу еще один вопрос.

Теперь по какой-либо причине приложение определяет Kerberos prinicpal как [email protected] вместо [email protected]. Аутентификация затем, естественно, с krb_error 41 Message stream modified. Включение и выключение снова в конечном итоге устраняет эту проблему временно.

Это может быть воспроизведено с использованием файла kinit.exe (или его класса sun.security.krb5.internal.tools.Kinit) с Java JDK. Поскольку я не нашел никакой информации о том, как kinit действительно ведет себя, когда не предоставляется основное имя, я не знаю, где искать какие-либо причины.

ответ

0

Причина заключается в том, что по некоторым причинам окна решают установить переменную окружения USERDNSDOMAIN в нижний регистр в некоторых случаях.

Kinit получает свою область по умолчанию оттуда, смотрите ссылку для справки: http://www.docjar.com/html/api/sun/security/krb5/Config.java.html#1071

Теперь, на первопричину ...