0

現在、クラシックASPとVisual Basic 6で構築された次のアーキテクチャがあります

データベースに接続する VB6 で開発された COM+ コンポーネントがあります。統合セキュリティで構成された .udl ファイルを介して DB conf を設定しました。

Web サーバー (IIS) でコンポーネントを com+ マネージャーに登録し、mydomain\appAccount などのアカウント名で実行されるように構成します。

SQL 2005 では、適切なアクセス許可に mydomain\appAccount を付与します

aspから、server.createobjectでコンポーネントを使用するだけです...

Javaで同様のソリューションを開発したいのですが、質問は次のとおりです。

出来ますか?

SQL Server 2005 db に接続するようにドメイン アカウントを構成するにはどうすればよいですか?

db conf はどこに保存すればよいですか? また、ドメイン アカウントはどこで設定すればよいですか? tomcat/jetty構成で?

解決策をできるだけシンプルかつ簡単にしたいと思います (glassfish や jboss などを避けようとしています)。

ええと、どうもありがとう...

4

3 に答える 3

1

あなたがする必要があるのは、TomcatJVMプロセスがデータベースへの信頼できる接続を持つユーザーによって実行されていることを確認することです。

次に、 Bhushanの回答に従って、Tomcatでデータソースを構成する必要があります。

次のMSDNの記事では、統合セキュリティを使用するようにデータソースを設定する方法について詳しく説明しています。

于 2009-07-18T00:24:18.813 に答える
1

これは本当に難しい問題で、私も今同じ問題に直面しています。アプリ サーバー内でのなりすましはまだ解決していませんが、私のチームは近づいています。

これまでのところ、Kerberos を使用してドメイン コントローラーに対してユーザーを認証することに成功しています。その点で、SourceForge SPNEGO と Spring Security Kerberos Extension の両方が非常に役に立ちました。また、SQL Server への接続時に Java アプリケーションを実行しているプロセスを偽装することにも成功しています。真の問題は委任によるなりすましです。別のサービスに委任できる Kerberos チケットを取得する必要があるためです。これは私たちが現在取り組んでいる問題です。

SQL Server でユーザーを偽装する場合は、NTLM または Kerberos を使用して行う必要があります。Kerberos は最高のセキュリティを提供します。正直に言うと、NTLM を試してみることさえしませんでした。ドメイン アカウントを使用して SQL Server に接続できる JDBC ドライバー (私が知っている) が 2 つあります。jTDS と DataDirect JDBC です。jTDS は Type-2 JDBC ドライバーです。つまり、ネイティブ ライブラリに依存してユーザーの資格情報を取得します。jTDS は、プロセスを実行しているユーザーを偽装するだけで、他のアカウントを偽装することはできません (また、これは Windows でのみ可能です)。DataDirect ドライバー (商用) は Type-4 ドライバーです。つまり、純粋な Java 実装です (*nix で動作します)。これは私たちが使用しているドライバーであり、うまく機能しています。

コミュニティの多くの人がこの問題で苦しんでいると思うので、解決策がうまくいった場合は投稿します。

幸運を!

于 2010-02-04T12:35:49.423 に答える