Apache NiFi で LDAP に接続
Apache NiFi は、強力かつスケーラブルなデータルーティング、変換、システム間連携ロジックの有向グラフをサポートしています。CData JDBC Driver for LDAP と組み合わせることで、NiFi からリアルタイムのLDAP objects を操作できます。この記事では、Apache NiFi Flow からLDAP objects に接続してクエリを実行する方法を説明します。
CData JDBC Driver は、最適化されたデータ処理機能が組み込まれており、リアルタイムのLDAP objects とのやり取りにおいて比類のないパフォーマンスを提供します。複雑なSQL クエリをLDAP に発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作を直接LDAP にプッシュし、サポートされていない操作(多くの場合SQL 関数やJOIN 操作)は組み込みのSQL エンジンでクライアント側に処理します。また、組み込みの動的メタデータクエリにより、ネイティブのデータ型を使用してLDAP objects を操作・分析できます。
Apache NiFi でLDAP Objects に接続
- CData JDBC Driver for LDAP のインストーラーをダウンロードし、パッケージを解凍して、.exe ファイルを実行してドライバーをインストールします。
CData JDBC Driver のJAR ファイル(およびライセンスファイルがある場合はそれも)、cdata.jdbc.ldap.jar(および cdata.jdbc.ldap.lic)を Apache NiFi の lib サブフォルダにコピーします(例:C:\nifi-1.3.0-bin\nifi-1.3.0\lib)。
Windows では、CData JDBC Driver のデフォルトのインストール場所は C:\Program Files\CData\CData JDBC Driver for LDAP です。
bin サブフォルダにある run-nifi.bat ファイルを実行して Apache NiFi を起動します(例:C:\nifi-1.3.0-bin\nifi-1.3.0\bin)。
(または)
コマンドプロンプトで対象のディレクトリに移動し、run-nifi.bat ファイルを実行します:
cd C:\nifi-1.3.0-bin\nifi-1.3.0\bin .\run-nifi.bat
Web ブラウザで Apache NiFi の UI に移動します:https://localhost:8443/nifi でアクセスできます。
注意:古いバージョンの Apache NiFi を使用している場合は、http://localhost:8080/nifi からアクセスする必要があります。以前のバージョンでは HTTP プロトコルが使用されていましたが、最新バージョンでは HTTPS が標準になっています。デフォルトでは、HTTP はポート 8080 で動作し、HTTPS はポート 8443 を使用します。
URL から Apache NiFi にアクセスすると、ログイン用のユーザー名とパスワードの入力を求められます。
ログイン資格情報を取得するには、NiFi のインストールディレクトリ内の log ディレクトリにある「App.log」ファイルを確認してください。このファイルには通常、NiFi インターフェースにアクセスするために必要な情報が含まれています。
- NiFi Flow のワークスペースを右クリックし、「Controller Services」をクリックします。
- ボタンをクリックして、新しいコントローラーサービスを作成します。
- Controller Services セクションで、新しく作成した「DBCPConnection Pool」を見つけ、メニュー()から「Edit」をクリックして新しい接続を設定します。
以下のプロパティを入力します:
- Database Connection URL:jdbc:ldap:User=Domain\BobF;Password=bob123456;Server=10.0.1.1;Port=389;
- Database Driver Class Name:cdata.jdbc.ldap.LDAPDriver
- Database Driver Location(s):Apache NiFi の lib フォルダへのパス(JAR ファイルが配置されている場所)。
組み込みの接続文字列デザイナー
JDBC URL の構築には、LDAP JDBC Driver に組み込まれている接続文字列デザイナーを使用できます。JAR ファイルをダブルクリックするか、コマンドラインから JAR ファイルを実行してください。
java -jar cdata.jdbc.ldap.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
リクエストを認証するには、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:このプロパティを使用すると、サブツリーから返されるデータをより細かく制御できます。
- Controller Services セクションで、新しく作成した DBCPConnection Pool を見つけ、メニュー()から「Enable」をクリックして新しい接続を有効にします。
- 「Enable Controller Service」ウィンドウで、Scope を「Service and referencing components」に設定します。
- 接続を確立し、SELECT クエリを実行するには、プロセッサー(黄色でハイライトされている部分)をワークスペースにドラッグ&ドロップします。
- 「ExecuteSQL」プロセッサーを選択し、「Add」ボタンをクリックしてワークスペースに表示させます。
- 追加したプロセッサー(ExecuteSQL)をダブルクリックして、接続ページを開きます。
- Properties セクションで、必要な情報を入力します。Database Connection Pooling Service を作成した DBCPConnectionPool に一致させ、SQL select query セクションに実行したい SQL クエリを設定してください。
- Relationships に移動し、実行プロセスの成功時と失敗時にコンポーネントがどのように処理を進めるかのオプションを選択してください。
- ExecuteSQL コンポーネントを有効にするには、それを選択して Operation セクションの「Enable」をクリックするか、右クリックして「Enable」を選択します。
これでLDAP objects が Apache NiFi で使用できるようになりました。たとえば、DBCPConnection Pool を QueryDatabaseTable プロセッサーのソースとして使用できます(以下に表示)。
30日間の無料トライアルをダウンロードして、Apache NiFi でリアルタイムのLDAP objects を操作してみてください。ご不明な点は、サポートチームまでお気軽にお問い合わせください。