SQL Server JDBC可信连接身份验证如何工作?

时间:2008-10-21 08:24:27

标签: java sql-server jdbc jna trustedconnection

SQL Server JDBC可信连接身份验证如何工作? (即,可信连接如何以透明和优雅的方式对登录的AD用户进行身份验证,以及如何在没有数据库连接或使用现有SQL Server解决方案的情况下为Java中的客户端 - 服务器应用程序实现类似的身份验证解决方案。)

假设 *在Windows 2003域中工作 *您可以通过JNI / JNA访问Windows API

3 个答案:

答案 0 :(得分:1)

这取决于客户。例如,如果您有Web浏览器,则可以使用NTLM身份验证将当前客户端的域身份验证传递给服务器。在这种情况下,IE或FF等浏览器支持此功能,而您的Web服务器需要对NTLM的支持。例如Tomcat的示例:http://jcifs.samba.org/src/docs/ntlmhttpauth.html

还有SPNEGO protcol与Kerberos结合使用,如下所述:http://java.sun.com/javase/6/docs/technotes/guides/security/jgss/lab/index.html

如果您有自己的客户端,则它取决于客户端的框架,如果它能够使用本地用户的安全上下文并且能够传递它。上面的页面至少针对kerberos场景描述了这一点。

问候 贝恩德

PS:我不确定您是否可以将使用jcifs / ntmlm解决方案建立的身份验证上下文传递给SQL Server等后端组件。它应该与Kerberos票证一起使用(如果已配置)。

答案 1 :(得分:1)

jTDS和Microsoft JDBC Driver都提供本机Windows身份验证。

答案 2 :(得分:0)

你看过this question了吗?这种情况似乎与您的情况类似(使用Windows身份验证连接到SQL Server数据库)。