Как работает аутентификация доверенного соединения JDBC в SQL Server?
Как работает аутентификация доверенного соединения JDBC в SQL Server? (т.е. как доверенное соединение аутентифицирует зарегистрированного пользователя AD таким прозрачным и элегантным способом и как я могу реализовать аналогичное решение для аутентификации для моих клиент-серверных приложений на Java без подключения к базе данных или какого-либо использования существующего решения SQL Server.)
Допущения * Работа в домене Windows 2003 * У вас есть доступ к Windows API через JNI/JNA
3 ответа
Это зависит от клиента. Например, если у вас есть веб-браузер, он может использовать проверку подлинности NTLM для передачи проверки подлинности домена текущего клиента на сервер. В этом случае браузер, такой как IE или FF, поддерживает это, и ваш веб-сервер нуждается в поддержке NTLM. Например, здесь для Tomcat: http://jcifs.samba.org/src/docs/ntlmhttpauth.html
Существует также протокол SPNEGO в сочетании с Kerberos, как описано здесь: http://java.sun.com/javase/6/docs/technotes/guides/security/jgss/lab/index.html
Если у вас есть собственный клиент, он зависит от клиентской среды, сможет ли он использовать контекст безопасности локального пользователя и может передать его. Страница выше описывает это по крайней мере для сценария Kerberos.
Привет Бернд
PS: я не уверен, что вы можете передать контекст аутентификации, установленный с помощью решения jcifs/ntmlm, в бэкэнд-компонент, такой как SQL Server. Должен работать с билетами Kerberos (если настроен).
jTDS и Microsoft JDBC Driver оба предлагают собственную аутентификацию Windows.
Вы смотрели на этот вопрос? Ситуация, похоже, похожа на вашу (подключение к базе данных SQL Server с использованием аутентификации Windows).