SQL Server JDBC信頼接続認証はどのように機能しますか?
-
03-07-2019 - |
質問
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
ここで説明するように、Kerberosと組み合わせたSPNEGOプロトコルもあります。 http://java.sun.com/javase/6/docs/technotes/guides/security/jgss/lab/index.html
独自のクライアントがある場合、ローカルユーザーのセキュリティコンテキストを使用して渡すことができるかどうかは、クライアントのフレームワークに依存します。上記のページでは、少なくともKerberosシナリオについてこれについて説明しています。
挨拶 ベルント
PS:jcifs / ntmlmソリューションで確立された認証コンテキストをSQL Serverなどのバックエンドコンポーネントに渡すことができるかどうかはわかりません。 Kerberosチケットで動作するはずです(設定されている場合)。
他のヒント
jTDSとMicrosoft JDBCドライバーはどちらもネイティブWindows認証を提供します。
この質問?状況はあなたのものに似ているようです(Windows認証を使用してSQL Serverデータベースに接続します)。