Как работает аутентификация доверенного соединения 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).

Другие вопросы по тегам