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

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

有帮助吗?

解决方案

这取决于客户。例如,如果您有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票证一起使用(如果已配置)。

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top