Как работает проверка подлинности доверенного соединения SQL Server JDBC?
-
03-07-2019 - |
Вопрос
Как работает проверка подлинности доверенного соединения SQL Server JDBC?(т.е. как доверенное соединение аутентифицирует вошедшего в систему пользователя AD таким прозрачным и элегантным способом и как я могу реализовать аналогичное решение аутентификации для моих клиент-серверных приложений на Java без подключения к базе данных или какого-либо использования существующего решения SQL Server.)
Предположения * Работа в домене Windows 2003 * У вас есть доступ к Windows API через JNI / JNA
Решение
Это зависит от клиента.Например, если у вас есть веб-браузер, он может использовать аутентификацию 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.
Приветствия Bernd
PS:Я не уверен, можете ли вы передать контекст аутентификации, установленный с помощью решения jcifs / ntmlm, внутреннему компоненту, такому как SQL Server.Он должен работать с билетами Kerberos (если настроен).
Другие советы
jTDS и драйвер Microsoft JDBC предлагают встроенную проверку подлинности Windows.
Вы смотрели на этот вопрос?Ситуация, похоже, похожа на вашу (подключение к базе данных SQL Server с использованием проверки подлинности Windows).