Так что это очень сложная проблема, и сейчас я сталкиваюсь с теми же проблемами. Я еще не решил олицетворение на сервере приложений, но моя команда приближается.
До сих пор мы успешно аутентифицировали пользователя на контроллере домена с помощью Kerberos. И SourceForge SPNEGO, и Spring Security Kerberos Extension очень помогли в этом отношении. Мы также смогли успешно олицетворять процесс, выполняющий приложение Java, при подключении к SQL Server. Настоящая проблема заключается в олицетворении с помощью делегирования, поскольку для этого требуется получить билет Kerberos, который можно делегировать другой службе. Это проблема, над которой мы сейчас работаем.
Если вы собираетесь выдавать себя за пользователя в SQL Server, вы должны сделать это с помощью NTLM или Kerberos. Kerberos предлагает лучшую безопасность, и, честно говоря, мы даже не удосужились попробовать использовать NTLM. Существует два драйвера JDBC (о которых я знаю), которые позволят вам подключаться к SQL Server с использованием учетной записи домена: jTDS и DataDirect JDBC. jTDS - это драйвер JDBC типа 2, что означает, что он использует собственную библиотеку для получения учетных данных пользователя. jTDS будет выдавать себя за пользователя, выполняющего процесс, и не позволит вам выдавать себя за другие учетные записи (также это может быть сделано только в Windows). Драйвер DataDirect (коммерческий) является драйвером типа 4, что означает, что он является чистой реализацией Java (и будет работать на * nix). Это драйвер, который мы используем, и он отлично работает.
Если я получу работающее решение, я опубликую его, потому что я думаю, что многие люди в сообществе страдают от этой проблемы.
Удачи!