Я хочу реализовать единый вход в Kerberos в Java, и мне удалось создать билет для Сервиса, используя билет из входа в Windows.К сожалению, я могу создать этот тикет только тогда, когда ключ реестра «allowtgtsessionkey» включен.Я получаю исключение с сообщением «Идентификатор не соответствует ожидаемому значению (906)», как только я его отключаю.Раздел реестра задокументирован на http://java.sun.com/j2se/1.5.0/docs/guide/security/jgss/tutorials/Troubleshooting.html и http://support.microsoft.com/kb/308339.
К сожалению, у меня нет доступа к реестру на компьютерах, где будет использоваться мое приложение, поэтому я ищу способ сделатьэто без необходимости изменять его.Когда я делаю однократную регистрацию через SPNEGO в Internet Explorer или Mozilla Firefox, они создают билет службы в моем кэше билетов, поэтому определенно должен быть способ сделать это без установки ключа реестра.У кого-нибудь есть идеи, как это сделать на Java?
Спасибо за вашу помощь, memminger
Обновление: я отказываюсь от этой проблемы.Раздел реестра Windows запрещает доступ к Билету (точнее: Предмету) внутри кеша Билета.Java в Windows использует свою собственную реализацию GSSAPI, и я полагаю, что для создания Service Ticket необходим доступ к Ticket.Windows API SSPI, тем не менее, имеет полный доступ к кешу билетов и, таким образом, может создавать билеты службы.Этот API используется веб-браузерами, но не используется Java (в соответствии с http://java.sun.com/developer/technicalArticles/J2SE/security/#3). Когда я отключаю SSPI в Firefox после однократного доступа к веб-странице (таким образом, был создан билет службы), я могупо-прежнему обращайтесь к странице, поэтому, возможно, будет достаточно утилиты командной строки, которая создает билет службы с помощью API SPPI.
Для нас это означает, что теперь мы можем либо отказаться от единого входа (что неприемлемо длянас) или что мы выполняем аутентификацию на стороне клиента нашего приложения (потому что мы можем только считывать имя пользователя, но не проверяем билет на сервере), что представляет собой серьезную угрозу безопасности. Еще один пример того, как более сильные ограничения безопасности приводят кбольшие дыры в безопасности, потому что они становятся слишком сложными для использования.