製品をチェック

LDAP Driver の30日間無償トライアルをダウンロード

 30日間の無償トライアルへ

製品の詳細

LDAP アイコン LDAP JDBC Driver 相談したい

LDAP ディレクトリサービスを組み込んだパワフルなJava アプリケーションを短時間・低コストで作成して配布できます。

Jetty コネクションプールからLDAP データに連携。

CData JDBC Driver は、コネクションプーリングをサポートします:本記事では、Jetty のWeb アプリからLDAP データに連携する手順を説明します。

加藤龍彦
ウェブデベロッパー

最終更新日:2023-06-18
ldap ロゴ

CData

jdbc ロゴ画像
Jetty ロゴ

こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。

CData JDBC Driver for LDAP は、Java Web アプリケーションに簡単に統合して利用することができます。本記事では、Jetty でドライバーをコネクションプールとして設定することで、効率的にLDAP データをアプリケーションで連携利用する方法を説明します。Jetty でJNDI resource for LDAP を設定します。

DBC Driver for LDAP を JNDI Data Source として設定

次の手順で、Jetty とLDAP の接続を確立します。

  1. Jetty ベースでJNDI モジュールを有効化します。JNDI を有効化するコマンドラインは以下の通り:

    java -jar ../start.jar --add-to-startd=jndi
  2. JDBC Driver の.jar ファイルと.lic ファイル(インストールディレクトリのlib フォルダ下)をcontext path のlib フォルダに配置します。
  3. リソースおよびスコープを宣言します。リソース宣言で必要な接続プロパティを入力します。この例では、LDAP データソースをWeb アプリケーションのWEB-INF\jetty-env.xml レベルにdeclare しています。

    <Configure id='ldapdemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="ldapdemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="ldapdemo"/></Arg> <Arg>jdbc/ldapdb</Arg> <Arg> <New class="cdata.jdbc.ldap.LDAPDriver"> <Set name="url">jdbc:ldap:</Set> <Set name="User">Domain\BobF</Set> <Set name="Password">bob123456</Set> <Set name="Server">10.0.1.1</Set> <Set name="Port">389</Set> </New> </Arg> </New> </Configure>

    リクエストを認証するには、User およびPassword プロパティを有効なLDAP クレデンシャル(例えば、User を"Domain\BobF" または"cn=Bob F,ou=Employees,dc=Domain")に設定します。 CData 製品は、デフォルトでプレーンテキスト認証を使用します。これは、CData 製品がサーバーとTLS/SSL のネゴシエーションを試みるためです。 AuthMechanism を使って別の認証方法を指定できます。 TLS/SSL コンフィギュレーションについて詳しくは、ヘルプドキュメントの「高度な設定」を参照してください。

      基本接続には、Server およびPort を設定します。さらに、次のように接続を微調整できます。
    • FollowReferrals:設定すると、CData 製品は参照サーバーのデータもビューとして表示します。参照サーバー上のデータを変更するには、このサーバーをServer およびPort で指定する必要があります。
    • LDAPVersion:サーバーが実装するプロトコルのバージョンに設定します。デフォルトでは、CData 製品はversion 2 を使用します。
    • BaseDN は、LDAP 検索の範囲を指定された識別名の高さに限定します。BaseDN の範囲を絞ることはパフォーマンスを劇的に向上させます。例えば、"cn=users,dc=domain" の値は、"cn=users" およびその子に含まれる結果のみを返します。
    • Scope:このプロパティを使用すると、サブツリーから返されるデータをより細かく制御できます。
  4. Web xml でリソースを設定します:

    jdbc/ldapdb javax.sql.DataSource Container
  5. これで、java:comp/env/jdbc/ldapdb へのルックアップでLDAP データにアクセスできます: InitialContext ctx = new InitialContext(); DataSource myldap = (DataSource)ctx.lookup("java:comp/env/jdbc/ldapdb");

Jetty にさらに統合

ここでは、シンプルなコネクションプーリングシナリオでのドライバーの接続について説明しました。追加での連携ケースについては、Jetty ドキュメントのWorking with Jetty JNDI  参照してください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。