При моем скромном использовании JAAS -> JGSS -> Kerberos -> Windows я настроил Krb5LoginModule Когда я это сделаю:
Код: Выделить всё
Subject.doAs(
new LoginContext(...)).login(), // subject
new MyPrivilegedAction() // action
)
Используя взлом TGT Session Key, можно избежать запроса учетных данных
Если я также добавлю useTicketCache=true в модуль входа и если я смирюсь с угрозами безопасности, связанными с настройкой HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters\AllowTgtSessionKey=1 и не используйте Windows 10 Credential Guard, тогда действие будет успешным без запроса учетных данных.
Java 12 предоставляет нам встроенную библиотеку GSS-API по умолчанию даже в Windows
В Java 11.0.10 появилась возможность использования собственной реализации GSS-API в Windows, но не была реализована реализация по умолчанию. В Java 12 добавлена собственная реализация GSS-API, связанная с SSPI Windows. Это позволяет избежать необходимости использования рискованного параметра AllowTGTSessionKey.
Использование собственного GSS-API также работает, запрашивая учетные данные
На Java 15.0.2 (как Oracle, так и OpenJDK) в Windows, несмотря на документацию) по-прежнему (теперь ошибочно) утверждается: «В Windows нет известной собственной библиотеки GSS-API», Я могу:
- опустить системные свойства java.security.krb5.realm и java.security.krb5.kd (которые я использую вместо полноценного kr5.conf, поскольку моя среда AD проста); и
- просто укажите sun.security.jgss.native=true.
Но родной код всегда запрашивает учетные данные
Могу ли я ожидать при использовании sun.security.jgss.native=true (в JDK) 15.0.2 в Windows), что JAAS -> JGSS -> Kerberos -> Windows попытается использовать Windows LSASS через SSPI для получения учетных данных пользователя, выполняющего JVM? Или это не то, что облегчает встроенная библиотека GSS-API -> SSPI? Информации мало!
Подробнее здесь: https://stackoverflow.com/questions/658 ... th-jaas-by
Мобильная версия