各製品の資料を入手。
詳細はこちら →Jetty コネクションプールからActive Directory のデータに連携。
CData JDBC Driver は、コネクションプーリングをサポートします:本記事では、Jetty のWeb アプリからActive Directory のデータに連携する手順を説明します。
最終更新日:2023-06-18
この記事で実現できるActive Directory 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
CData JDBC Driver for ActiveDirectory は、Java Web アプリケーションに簡単に統合して利用することができます。本記事では、Jetty でドライバーをコネクションプールとして設定することで、効率的にActive Directory のデータをアプリケーションで連携利用する方法を説明します。Jetty でJNDI resource for ActiveDirectory を設定します。
DBC Driver for ActiveDirectory を JNDI Data Source として設定
次の手順で、Jetty とActive Directory の接続を確立します。
Jetty ベースでJNDI モジュールを有効化します。JNDI を有効化するコマンドラインは以下の通り:
java -jar ../start.jar --add-to-startd=jndi
- JDBC Driver の.jar ファイルと.lic ファイル(インストールディレクトリのlib フォルダ下)をcontext path のlib フォルダに配置します。
-
リソースおよびスコープを宣言します。リソース宣言で必要な接続プロパティを入力します。この例では、Active Directory のデータソースをWeb アプリケーションのWEB-INF\jetty-env.xml レベルにdeclare しています。
<Configure id='activedirectorydemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="activedirectorydemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="activedirectorydemo"/></Arg> <Arg>jdbc/activedirectorydb</Arg> <Arg> <New class="cdata.jdbc.activedirectory.ActiveDirectoryDriver"> <Set name="url">jdbc:activedirectory:</Set> <Set name="User">cn</Set> <Set name="Password">bob123</Set> <Set name="Server">10.0.1.2</Set> <Set name="Port">389</Set> </New> </Arg> </New> </Configure>
ActiveDirectory 接続プロパティの取得・設定方法
接続には以下の情報が必要です。
- 有効なユーザーおよびパスワード情報 (例:Domain\BobF or cn=Bob F,ou=Employees,dc=Domain)。
- 接続するサーバーのIP、ホスト名、ポートを含むサーバー情報。
-
BaseDN: 指定されたname にLDAP 検索の範囲を制限します。
ちなみに、BaseDN を狭い範囲に設定することで大幅にパフォーマンスを改善できます。例えば、cn=users,dc=domain は、cn=users およびその子の範囲に戻り値の結果を制限します。
-
Web xml でリソースを設定します:
jdbc/activedirectorydb javax.sql.DataSource Container -
これで、java:comp/env/jdbc/activedirectorydb へのルックアップでActive Directory のデータにアクセスできます:
InitialContext ctx = new InitialContext(); DataSource myactivedirectory = (DataSource)ctx.lookup("java:comp/env/jdbc/activedirectorydb");
Jetty にさらに統合
ここでは、シンプルなコネクションプーリングシナリオでのドライバーの接続について説明しました。追加での連携ケースについては、Jetty ドキュメントのWorking with Jetty JNDI 参照してください。