0

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

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

4

3 回答 3

1

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

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

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

问候伯恩德

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

于 2008-10-21T21:06:36.517 回答
1

jTDS 和 Microsoft JDBC 驱动程序都提供本地 Windows 身份验证。

于 2008-11-11T04:14:18.757 回答
0

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

于 2008-10-21T13:23:05.237 回答