はじめに
今回はpythonのldap3の使い方についてです。
ADサーバに対してldap3を使ってアクセスする必要がありその方法を備忘録として残します。
極力環境構築などは簡潔にするようにしているので、これからldap3を使う方は参考にしていただければと思います。
pythonのldap3の使い方
pythonのldap3の使い方について見ていきます。
まずはADサーバやpython-ldap3の概要について触れ、その後実際の使い方について書いてあります。
Active Directory (AD) サーバについて
Active Directory (AD) は、Microsoftが開発したディレクトリサービスで、ネットワーク上のオブジェクト(ユーザー、コンピュータ、プリンタ等)を一元的に管理するためのシステムです。情報を階層的に格納し、検索や管理を容易にすることができます。
Python-ldap3のインストール
PythonでActive Directoryにアクセスするためには、LDAP (Lightweight Directory Access Protocol) を使って通信を行います。PythonでLDAPを扱うためのライブラリとして、ldap3
があります。
インストールはpipを使用して簡単に行うことができます:
pip install ldap3
環境構築例
ここでは、Pythonとldap3
ライブラリを使用して、Active Directoryサーバーへの接続を行う環境を構築します。
環境構築の手順と前提は次の通りとします
- Active Directoryサーバのセットアップ:適切に設定されたActive Directoryサーバが必要です。詳細なセットアップ手順は、ADの設定が複雑で具体的な目的によって変わるため、ここでは省略します。Active DirectoryサーバのIPアドレスやドメイン、必要なユーザー名やパスワードなどの情報を把握しておく必要があります。
- Pythonと
ldap3
のインストール:上記のpip install ldap3
コマンドでPythonの環境にldap3
をインストールします。
これらの設定が完了すると、PythonスクリプトからActive Directoryサーバに接続し、情報を取得したり操作したりすることができます。
今回の例としてADサーバは次のようになっているとします。
Root
|
+-- com (ドメインコンポーネント、dc=com)
|
+-- example (ドメインコンポーネント、dc=example)
|
+-- Users (組織単位、ou=Users)
|
+-- John Doe (共通名、cn=John Doe)
サンプルプログラムはは example.com
というドメインにある Users
というOUの中にある John Doe
という名前のユーザを検索する例です。
注意点として、接続する際のユーザ名やパスワード、検索する際の検索基準やフィルタなどは実際の環境に合わせて変更する必要があります。
また、Active Directoryの階層構造や名前(CN、OU、DCなど)は環境によって異なるため、実際の操作前には適切な情報を確認する必要があります。
from ldap3 import Server, Connection, ALL
# LDAPサーバの定義
server = Server('your_ldap_server', get_info=ALL)
# 接続の設定
conn = Connection(server, 'cn=admin,dc=example,dc=com', 'password')
# 接続の確立
conn.bind()
# Users(組織単位、ou=Users)内のJohn Doe(共通名、cn=John Doe)を検索
conn.search('ou=Users,dc=example,dc=com', '(cn=John Doe)')
# 検索結果を表示
for entry in conn.entries:
print(entry)
ドメイン名などは「Active Directoryユーザとコンピュータ」から確認できます。
さいごに
今回はpythonのldap3の使い方についてでした。
ドメインなどのフォルダ構成とソースコードの対応関係されわかれば(今回は検索としていますが)新規や変更や削除も簡単に行えると思います。
この記事がお役に立ったのなら嬉しいです。
最後までお読みいただきありがとうございます。