Python で pandas を使って LDAP データを可視化する方法

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
pandas などのモジュールを使って Python で LDAP objectsをリアルタイムに分析・可視化する方法を紹介します。

Python の豊富なエコシステムを活用することで、作業を迅速に開始し、システム間の連携をより効果的に行うことができます。CData Python Connector for LDAP、pandas および Matplotlib モジュール、SQLAlchemy ツールキットを組み合わせることで、LDAP に接続した Python アプリケーションやスクリプトを構築し、LDAP objectsを可視化できます。この記事では、pandas、SQLAlchemy、Matplotlib の組み込み関数を使用して LDAP objectsに接続し、クエリを実行して結果を可視化する方法を説明します。

CData Python Connector は、組み込みの最適化されたデータ処理機能により、Python での LDAP objectsへのリアルタイムアクセスにおいて比類のないパフォーマンスを提供します。LDAP に対して複雑な SQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされている SQL 操作を LDAP に直接プッシュし、サポートされていない操作(多くの場合、SQL 関数や JOIN 操作)は組み込みの SQL エンジンを使用してクライアント側で処理します。

LDAP Objectsへの接続

LDAP objectsへの接続は、他のリレーショナルデータソースへの接続と同様です。必要な接続プロパティを使用して接続文字列を作成します。この記事では、接続文字列を create_engine 関数のパラメータとして渡します。

リクエストを認証するには、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:このプロパティを使用すると、サブツリーから返されるデータをより細かく制御できます。

以下の手順に従って、必要なモジュールをインストールし、Python オブジェクトを介して LDAP にアクセスしてみましょう。

必要なモジュールのインストール

pip ユーティリティを使用して、pandas、Matplotlib モジュール、および SQLAlchemy ツールキットをインストールします。

pip install pandas
pip install matplotlib
pip install sqlalchemy

以下のようにモジュールをインポートしてください。

import pandas
import matplotlib.pyplot as plt
from sqlalchemy import create_engine

Python で LDAP Objectsを可視化する

接続文字列を使用して接続できます。create_engine 関数を使用して、LDAP objectsを操作するための Engine を作成します。

engine = create_engine("ldap:///?User=Domain\BobF&Password=bob123456&Server=10.0.1.1&Port=389")

LDAP への SQL の実行

pandas の read_sql 関数を使用して、SQL ステートメントを実行し、結果セットを DataFrame に格納します。

df = pandas.read_sql("SELECT Id, LogonCount FROM User WHERE CN = 'Administrator'", engine)

LDAP Objectsの可視化

クエリ結果が DataFrame に格納されたら、plot 関数を使用して LDAP objectsを表示するグラフを作成します。show メソッドで、グラフを新しいウィンドウに表示します。

df.plot(kind="bar", x="Id", y="LogonCount")
plt.show()

無料トライアル & 詳細情報

CData Python Connector for LDAP の 30日間無料トライアルをダウンロードして、LDAP objectsに接続する Python アプリケーションやスクリプトの構築を始めましょう。ご質問がありましたら、サポートチームまでお気軽にお問い合わせください。



完全なソースコード

import pandas
import matplotlib.pyplot as plt
from sqlalchemy import create_engin

engine = create_engine("ldap:///?User=Domain\BobF&Password=bob123456&Server=10.0.1.1&Port=389")
df = pandas.read_sql("SELECT Id, LogonCount FROM User WHERE CN = 'Administrator'", engine)

df.plot(kind="bar", x="Id", y="LogonCount")
plt.show()

はじめる準備はできましたか?

LDAP Connector のコミュニティライセンスをダウンロード:

 ダウンロード

詳細:

LDAP Icon LDAP Python Connector お問い合わせ

LDAP へのデータ連携用のPython Connecotr ライブラリ。 pandas、SQLAlchemy、Dash、petl などの主要なPython ツールにLDAP をシームレスに統合。