Как работает проверка подлинности доверенного соединения SQL Server JDBC?

Как работает проверка подлинности доверенного соединения SQL Server JDBC? (т.е. как доверенное соединение аутентифицирует вошедшего в систему пользователя AD таким прозрачным и элегантным способом и как я могу реализовать аналогичное решение для аутентификации для моих клиент-серверных приложений на Java без подключения к базе данных или любого использования существующего решения SQL Server .)

Предположения * Работа в домене Windows 2003 * У вас есть доступ к Windows API через JNI/JNA


person hawkeye    schedule 21.10.2008    source источник


Ответы (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 (если они настроены).

person eckes    schedule 21.10.2008
comment
Этот комментарий PS - то, о чем был вопрос. Я хочу передать контекст аутентификации, установленный с помощью jcifs, внутреннему компоненту, такому как SQL Server. Какие-либо предложения? - person hawkeye; 17.11.2008

jTDS и драйвер Microsoft JDBC предлагают встроенную аутентификацию Windows.

person eckes    schedule 11.11.2008